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

Вниз

TImage и рисование на канвасе   Найти похожие ветки 

 
NJoe   (2004-07-23 11:47) [0]

Доброе утро всем. Есть такое дело - нужно рисовать на TImage, когда в него загружена картинка.
При попытке сделать Image.Canvas.DrawFocusRect выплывает эксепшн
can only modify an image if it contains a bitmap.
Рисование на Image.Picture.Bitmap.Canvas тоже ни к чему хорошему не приводит - картинка исчезает (как будто битмапу фри сделали).
Как рисовать?


 
Sergey Kaminski ©   (2004-07-23 11:52) [1]

> can only modify an image if it contains a bitmap.

Иконка загружена


 
NJoe   (2004-07-23 11:54) [2]

загружен Jpeg


 
Sergey Kaminski ©   (2004-07-23 11:58) [3]

JPeg не битмап, поэтому нельзя так
Image.Picture.Bitmap.Canvas (нету там битмапа никакого)


 
NJoe   (2004-07-23 11:59) [4]

Дык понимаю, что нельзя, ибо не получается. А как можно/нужно?


 
Sergey Kaminski ©   (2004-07-23 12:02) [5]

Не грузить туда джейпегов, только bmp


 
Sergey Kaminski ©   (2004-07-23 12:03) [6]

И будет тогда битмап, на канве которого можно рисовать.


 
NJoe   (2004-07-23 12:04) [7]

Т.е. вариантов рисования при Jpeg нет?


 
Sergey Kaminski ©   (2004-07-23 12:10) [8]


var
Jpg: TJPEGImage;
begin
Jpg := TJPEGImage.Create;
//
//Jpg.LoadFromFile("pic.jpg");
// ..LoadFromStrem или как угодно

Image1.Canvas.Draw(0,0,Jpg);
Image1.Canvas.DrawFocusRect (Image1.Canvas.ClipRect);
Jpg.Free;

end;



 
Sergey Kaminski ©   (2004-07-23 12:11) [9]

разумеется,в дизайн-тайме в Image не грузить никаких джпг :)


 
NJoe   (2004-07-23 12:15) [10]

ессесьна. в рантайме из потока.
Спасибо.


 
NJoe   (2004-07-23 12:24) [11]

Во балин. Понял, почему сразу не рисовало...
Делал я Image.Picture.Graphic:=jpg, а надо то было просто рисовать Image.Canvas.Draw(0,0,jpg).


 
Sergey Kaminski ©   (2004-07-23 12:31) [12]

Image.Picture.Graphic:=jpg это все равно, что ты в дизайн тайме загрузил джпг


 
NJoe   (2004-07-23 12:40) [13]

хм... олень... просто олень... :))


 
Огромное Кулясищще ©   (2004-07-23 15:24) [14]

>Делал я Image.Picture.Graphic:=jpg, а надо то было просто рисовать Image.Canvas.Draw(0,0,jpg).

На самом деле это очень плохо. Нафига тогда TImage, разве что сам себя перерисовывает?

ИМХО всё в Image.Picture.Bitmap надо грузить и там с этим работать.



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

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

Наверх




Память: 0.49 MB
Время: 0.057 c
1-1090574579
Юрий Ж.
2004-07-23 13:22
2004.08.08
Всплываюий Panel


4-1088476272
GrayFace
2004-06-29 06:31
2004.08.08
Аналоги хуков; как узнать все API функции, которые вызывает прога


9-1083130788
LENIN
2004-04-28 09:39
2004.08.08
Delphi


3-1089859136
CHTR
2004-07-15 06:38
2004.08.08
Где найти инфу по работе с Access отчетами


3-1089649478
ceval
2004-07-12 20:24
2004.08.08
сделать что бы при открытии dbf-файла в DBgrid выводилось