Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Проблем с Preview и Undo   Найти похожие ветки 

 
X-Disa   (2005-03-02 12:48) [0]

Пишу грфический редактор (движок - модифицированный Graphics 32), есть проблемка. Как лучше организовать Preview, при работе с большими изображениями все хорошо кроме тормозв этого самого preview.
Делаю так:
MainImage.PaintTo(FPanelPreview.ImagePreview.Bitmap,R);
R - область предпросмотра с сохранением пропорций, MainImage - TImgView32.

И вторая пробелма - как реализовано undo например в фотошопе - как примерно это там работает ТАК быстро?


 
dmk ©   (2005-03-02 19:39) [1]

Посмотри как у меня Preview реализовано.
http://dmk.interwave.ru/

А по поводу UNDO есть некоторые хитрости которые
с помощью Graphics32 не реализуешь.


 
X-Disa   (2005-03-03 11:22) [2]

В фотошопе наверно через filestream.
Мне хотя бы отмену изменений битмапа сделать, т.к. undo -самое узкое место.


 
Fenik   (2005-03-03 21:34) [3]

Если подумать, тут можно море всего придумать..
Например, если изменилась всего одна точка изображения, запоминаем только координаты и старый цвет = 4+4+4 = 12 байт. :)
Или, при создании примитива, запоминать только координаты, тип и свойства.
Если изменилась часть рисунка, запоминать только её.
Короче, широкий простор для фантазии. Главное внимательно и логично построить алгоритм и не хранить избыточной информации в памяти.

Пусть в памяти постоянно текущее изображение и предыдущее (или его измененная часть). При вызове отмены быстро копируешь кусок старого рисунка на текущий, выводишь на экран, тем временем, в отдельном потоке готовя очередное предыдущее изображение путем рисования примитивов и измененных частей на первоначальном.

Ну, это так, общие расплывчатые мысли. Тебе предстоит это реализовать.. :)


 
X-Disa   (2005-03-04 11:08) [4]

Попытаюсь. Пока надо доделать вставку текста и еще кое-чего обезглючить.



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.06 c
3-1116402505
SLP
2005-05-18 11:48
2005.06.29
копирование результатов запроса в буфер обмена


9-1111516682
Sphinx
2005-03-22 21:38
2005.06.29
Плагин к 3DS Max 7 и .X файлы


3-1116844274
ass1
2005-05-23 14:31
2005.06.29
опять isc4.gdb


4-1115666441
n0wheremany
2005-05-09 23:20
2005.06.29
Информация о процессе


3-1115878600
leonidus
2005-05-12 10:16
2005.06.29
Глюк базы dBase если поле пустое