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

Вниз

Рисование огромной картинки. Где, как и в чем?   Найти похожие ветки 

 
Genny   (2007-02-14 18:17) [0]

Здравствуйте...Помогите пожалуйста советом, если не сложно
Мне нужно нарисовать картинку, векторно. В ней очень много маленьких деталей, поэтому должна быть возможность увеличения масштаба. Это достигается тем, то я положила TImage на TScrollBox, и при увеличении масштаба увеличивается картинка. Но при определенном значении масштаба выдается ошибка, что не хватает памяти. Я перенесла все это с TImage на TPaintBox. Такой ошибки не вываливается теперь, но недостатки следующие:
1. Мне нужно сохранить ВСЁ изображение с TPaintBox. По всем статьям и форумам я нарыла код, который якобы сохраняет изображение с TpaintBox, но на самом деле он сохраняет только то, что находится в зоне видимости. А мне нужно сохранять всю картинку
2. При сворачивании формы приходится наблюдать в течение минут двух пока эта картинка отрисовывается. Поэтому вопрос: как сделать так, чтобы это изображение сохранялось на форме? Насколько я поняла, TPaintBox не сохраняет картинку и при каждом случае у него вызывается OnPaint (в котором кстати картинка и рисуется теперь у меня)
Я перечитала кучу всяких сообщений в форумах, но общей картины составить так и не смогла:( Какие то битмапы создают, чего-то куда-то копируют, вытаскивают...Пожалуйста препожалуйста, разъясните мне как поступить...


 
Desdechado ©   (2007-02-14 18:48) [1]

Векторная картинка на перечисленных тобой компонентах превращается в растровую. Чтобы сохранить ее как векторную, отрисовывай свои малюнки на DC (device context) созданного метафайла.
И рисовать на экране тоже рекомендую на DC какого-нибудь компонента, это заметно быстрее.
Чтобы еще ускорить отображение, рекомендую при рисовании обсчитывать координаты и проверять их вхождение в видимую область. Тогда можно будет отрисовывать только нужные вещи, а это заметно быстрее, особенно при большом количестве.


 
Genny   (2007-02-14 18:55) [2]


> отрисовывай свои малюнки на DC (device context) созданного
> метафайла


Вы думаете, если б я знала, что это значит, я бы не сделала?:)) Вы не могли бы разжевать более человеческим языком...И как мне потом эти малюнки сохранить в файл, например jpeg


 
Genny   (2007-02-14 18:58) [3]

Мне не нужно сохранять её как векторную, мне нужно её просто как картинку сохранить...


 
malyar   (2007-02-14 23:21) [4]

отрисовка на чем угодно по его DC смотри :  bitblt
и не пытайся рисовать то что не видно
посмотри здесь там много вкусного  www.delphiworld.narod.ru


 
Рамиль ©   (2007-02-15 09:52) [5]


> и не пытайся рисовать то что не видно

+ рисовать учитывая масштаб (т. е. не вырисовывать детали, которые физически не видны при данном масштабе)



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

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

Наверх




Память: 0.48 MB
Время: 0.044 c
15-1170844067
Gorlum
2007-02-07 13:27
2007.03.04
Про два компьютера и сеть


4-1161152894
mxc
2006-10-18 10:28
2007.03.04
как генерировать GUID


15-1171109407
xayam
2007-02-10 15:10
2007.03.04
Кто-нибудь сталкивался?


2-1171443724
wander
2007-02-14 12:02
2007.03.04
Диспетчер задач, список процессов


6-1159124688
Орион
2006-09-24 23:04
2007.03.04
Как прикрутить TIdConnectionIntercept к TIdTCPClient?