Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отменить последнее действие над картинкой [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]

надо надыбать реальный компонент


Наверх

Титульная страница Поиск, карта сайта Написать письмо