![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отменить последнее действие над картинкой [D7, WinXP]
Cheguevara © (2005-01-02 10:56:00)Подскажите народ, как отменить последнее действие над картинкой timage.И ещё: Можно ли сделать посредством канвы фильтрацию изображения как в фотошопе, или эффекты хотяб какиенибудь.
programania (2005-01-03 22:52:00) [1]Спасибо за оценку, это я писал, пишу и буду
с помощью этого форума.
Cheguevara (2005-01-03 21:12:00) [2]Ухты! рульная ваще програмка! Это ты писал? блин, убой. Спасибо за советы.
programania (2005-01-03 19:21:00) [3]>А как хранить эти действия
Код действия,параметр1,параметр2,...max число параметров.
Кстати, это можно потом использовать для
пакетной обработки нескольких картинок.
>iшage1.savetoclipboard(.........
clipboard лучше не трогать, там могут быть данные
других программ или этой после copy,
хранить промежуточные результаты лучше в массиве bitmap
или для экономии памяти даже на диске в bmp.
Кстати вспомнил, что можно обойтись вообще без undo,
если сделать доступными сразу все фильтры и настройки
это удобно: все сразу видно и можно все менять и
не так уж долго: можете оценить http:\\www.programania.com\ENJOL.ZIP 800kb
можно регулировать сразу 16-ю регуляторами:
удаление шумов, резкость, осветление темных мест,
гамму, баланс цветов, контрастность, насыщенность,
кстати, кроме шумов и резкости остальные регулировки
практически ничего не замедляют, если их делать
попутно с выводом на экран.
Cheguevara (2005-01-03 11:26:00) [4]
> Большинство действий над картинкой необратимо,
> поэтому придется хранить bitmap до действия.
> Однако в приличных редакторах есть отмена всех действий
> по списку undo, в этом случае пожалуй выгоднее
> хранить не bitmapы, а сами действия и повторять их
> с начала до точки отмены.
А как хранить эти действия? У меня была мысль, сохранять перед каждым действием картинку в буфер, а при отмене загружать последний сейв, только я не понял что нужно в коде указать где
image1.savetoclipboard(.........
programania (2005-01-03 01:49:00) [5]>Gero
А посмотрите как долго делает undo по списку photoPaint
похоже повторяет все с последнего сохранения,
к тому же действия делает человек и если он их ждал,
отмены подождет тем более,
хотя можно часть и в bitmape, может это и есть
undo special/check point в том же photoPaint.
>Можно ли сделать посредством канвы фильтрацию изображения
Сложные фильтры удобней и быстрее делать в массиве
и выводить только готовый результат scanLine.
Gero (2005-01-03 01:33:00) [6]
> хранить не bitmapы, а сами действия и повторять их с начала до точки отмены
А если действия занимают секунд по 10-20 каждое?
programania (2005-01-03 01:31:00) [7]>как отменить последнее действие над картинкой timage
Большинство действий над картинкой необратимо,
поэтому придется хранить bitmap до действия.
Однако в приличных редакторах есть отмена всех действий
по списку undo, в этом случае пожалуй выгоднее
хранить не bitmapы, а сами действия и повторять их
с начала до точки отмены.
olookin (2005-01-02 18:04:00) [8]Cheguevara (02.01.05 10:56)
Можно и даже иногда быстро, если работать не с пикселями per se, а посредством ScanLine у TCanvas.
Vaitek (2005-01-02 13:07:00) [9]а ты набери "Голова", и узнаешь 8-)
Плохиш (2005-01-02 12:46:00) [10]
> Vaitek © (02.01.05 12:25) [2]
В рамблере можно найти голову? :-)
Vaitek (2005-01-02 12:25:00) [11]Можно сделать все что угодно, нужны:
1) голова.
2) математика.
3) сайт по алгоримам.
Все это вполне легко найти. Рамблер поможет.
Polevi (2005-01-02 11:59:00) [12]надо надыбать реальный компонент