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

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

TImage и рисование на канвасе [D5, Win2k]


NJoe ©   (2004-07-23 11:47:00) 

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


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

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

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

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


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

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


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

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


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

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


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

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


Sergey Kaminski   (2004-07-23 12:11:00) [6]

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


Sergey Kaminski   (2004-07-23 12:10:00) [7]


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;


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

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


Sergey Kaminski   (2004-07-23 12:03:00) [9]

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


Sergey Kaminski   (2004-07-23 12:02:00) [10]

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


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

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


Sergey Kaminski   (2004-07-23 11:58:00) [12]

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


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

загружен Jpeg


Sergey Kaminski   (2004-07-23 11:52:00) [14]

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

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


Наверх

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