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

Вниз

Как быстро и красиво отрисовать огромный битмап?   Найти похожие ветки 

 
V   (2010-01-08 13:04) [40]


> делается превью огромного изображения, например что то среднее
> по размерам с исходником и областью вывода. И при выводе
> с еще бОльшим уменьшением всего битмапа уменьшается не исходник,
>  а превью

Вы думаете что так будет быстрее?

Представьте ситуацию, пользователь кликнул по спинБуттону, там циферка поменялась, вся геометрия пересчиталась, огромный битмап заново перечертился (0,1сек) и 1,5-2 секунды ждать пока сожмется и обновится изображение...
А если он 10 раз быстро щелкнул... создается ощущение что висим..

То есть все равно придется сначала уменьшать до средних размеров, а потом сразу же со средних до маленьких... Это разве не лишнее телодвижение?


 
12 ©   (2010-01-08 13:19) [41]

а если делать большого изображения копию с толстыми линиями, и превью его показывать?


 
V   (2010-01-08 13:58) [42]

Ну как ни крути, приходится изображение уменьшать
чтобы

> превью его показывать

нужно же его сресайзить...

Я тут подумал.... сделаю ка я кнопочку, назову ее "Apply" и по клику буду перерисовывать...
Быстро и почти безболезненно


 
Virgo_Style ©   (2010-01-08 14:21) [43]

На правах извращения:

пока пользователь смотрит на картинку, два потока втихую создают картинки для масштабов +1 и -1 от текущего.

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


 
V   (2010-01-08 14:41) [44]


> Virgo_Style © (08.01.10 14:21) [43]

Привожу заголовок одной из многих рисовальных процедур:
Procedure CFBottom(Bitmap:Graphics.TBitmap; x,y,D,rt,alpha,ds,h:Integer);
D - диаметр. Bitmap.Width = D
Допустим диаметр = 3500мм
При этом диаметре картинка получается одна.
Теперь пользователь меняет диаметр, все остальные параметры остаются прежними. Картинка сразу же перечерчивается, масштабируется, выводится.
Таким образом наглядно видно влияние каждого параметра на геометрическую форму (и как следствие на всякие площади поверхностей, массу и тд)
А таких рисовальных процедур куча... и у всех все разное..

Делать 50(или около того, а может больше) потоков, в которых будут втихую рисоваться разные возможные конфигурации - ну да.. извращение :)


 
DVM ©   (2010-01-08 16:36) [45]

что то сомнительно, чтобы пользователю нужны всенепременно все детали на превьюшке этого твоего огромного изображения. Надо не так. По каждому чиху юзера генерировать упрощенную превьюшку, пусть довольствуется ей, в фоне же начинать генерацию полноценной картинки которой превьюшку можно и заменить потом. Вообще пользователям надо понимать, что компьютер не может мгновенно как ни крути выполнять сложные вещи и в лбом случае придется подождать, даже если и не на 15000 на 15000 то на 50000 на 50000 то уж точно.


 
DVM ©   (2010-01-08 16:38) [46]


> пока пользователь смотрит на картинку, два потока втихую
> создают картинки для масштабов +1 и -1 от текущего.

это скока ж памяти потребует при его размерах картинок страшно представить


 
Anatoly Podgoretsky ©   (2010-01-08 16:56) [47]

> DVM  (08.01.2010 16:36:45)  [45]

228 МБ на полноразмерную картинку в 32 битах


 
DVM ©   (2010-01-08 17:53) [48]


> Anatoly Podgoretsky ©   (08.01.10 16:56) [47]

ну и теперь во всех масштабах надо умножить


 
antonn ©   (2010-01-08 21:53) [49]


> Вы думаете что так будет быстрее?

ну если прикинуть, что пользователь смотрит на картинку значительно больше времени, чем изменяет ее - то быстрее будет один раз уменьшить до превью, а потом много раз уменьшать превью, разница может быть значительной (у картинки со сторонами в 2 раза меньше пикселов в 4 раза меньше, т.е. за это время можно отобразить 4 раза превью, или 1 раз полноценное)



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

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

Наверх




Память: 0.55 MB
Время: 0.02 c
15-1260791003
stas
2009-12-14 14:43
2010.03.14
JScript кроссбраузерность


2-1263398863
Wutog
2010-01-13 19:07
2010.03.14
Люди умные помощь нужна ваша!!


8-1203308588
Человечка ма!
2008-02-18 07:23
2010.03.14
Штриховка объектов


2-1263300657
JSman
2010-01-12 15:50
2010.03.14
Как получить список файлов из MFT?


15-1257017604
Kerk
2009-10-31 22:33
2010.03.14
Книга мастеров