Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.11.2006, 17:29
UMmi UMmi вне форума
Прохожий
 
Регистрация: 06.11.2006
Адрес: МО
Сообщения: 6
Репутация: 10
По умолчанию как заполнить Canvas рисунком?

Подскажите, кто знаеТ, как?
Ответить с цитированием
  #2  
Старый 16.11.2006, 17:36
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

//Можно так:
form1.Canvas.Draw(0,0,image1.Picture.Graphic);
Ответить с цитированием
  #3  
Старый 16.11.2006, 17:54
UMmi UMmi вне форума
Прохожий
 
Регистрация: 06.11.2006
Адрес: МО
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от ART
//Можно так:
form1.Canvas.Draw(0,0,image1.Picture.Graphic);
ART, позволь уточнить: если на примере: есть рисунок 1.bmp(ipj, gif..), есть Canvas, как заполнить Canvas этим рисунком?
Ответить с цитированием
  #4  
Старый 16.11.2006, 17:54
UMmi UMmi вне форума
Прохожий
 
Регистрация: 06.11.2006
Адрес: МО
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от ART
//Можно так:
form1.Canvas.Draw(0,0,image1.Picture.Graphic);
ART, позволь уточнить: если на примере: есть рисунок 1.bmp(ipj, gif..), есть Canvas, как заполнить Canvas этим рисунком?
Ответить с цитированием
  #5  
Старый 16.11.2006, 18:58
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Если есть некий файл 1.bmp, то загружаешь в image свой 1.bmp.

image.picture.loadformfile('c:\1.bmp');

Потом, если есть canvas, то

Canvas.Draw(x,y, image.picture.graphic); //рисуем на канве твой 1.bmp

а вот с gif и jpg спроси у более умных людей
Ответить с цитированием
  #6  
Старый 16.11.2006, 22:26
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Если .bmp, то попробуй так:

Код:
 
procedure TForm1.FormPaint(Sender: TObject);
var
  bm1, bm2: TBitmap;
begin
   bm1 := TBitmap.Create;
   bm1.LoadFromFile( 'c:\WINDOWS\Пузыри.bmp' );
   bm2 := TBitmap.Create;
   bm2.Width := ClientWidth;
   bm2.Height := ClientHeight;
   bm2.Canvas.Brush.Bitmap := bm1;
   bm2.Canvas.FillRect( bm2.Canvas.ClipRect );
   Form1.Canvas.Draw( 0, 0, bm2 );
   // или так - BitBlt( Canvas.Handle, 0, 0, bm2.Width, bm2.Height, bm2.Canvas.Handle, 0, 0, SRCCOPY );
   bm2.Free;
   bm1.Free;
end;
Ответить с цитированием
  #7  
Старый 17.11.2006, 11:59
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

А загрузить JPG изображение можно при помощи TJPEGImage (модуль jpeg)...
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #8  
Старый 18.11.2006, 20:50
UMmi UMmi вне форума
Прохожий
 
Регистрация: 06.11.2006
Адрес: МО
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Decoding
Если .bmp, то попробуй так:

Код:
 
procedure TForm1.FormPaint(Sender: TObject);
var
  bm1, bm2: TBitmap;
begin
   bm1 := TBitmap.Create;
   bm1.LoadFromFile( 'c:\WINDOWS\Пузыри.bmp' );
   bm2 := TBitmap.Create;
   bm2.Width := ClientWidth;
   bm2.Height := ClientHeight;
   bm2.Canvas.Brush.Bitmap := bm1;
   bm2.Canvas.FillRect( bm2.Canvas.ClipRect );
   Form1.Canvas.Draw( 0, 0, bm2 );
   // или так - BitBlt( Canvas.Handle, 0, 0, bm2.Width, bm2.Height, bm2.Canvas.Handle, 0, 0, SRCCOPY );
   bm2.Free;
   bm1.Free;
end;

Класс! А если заполнять не саму форму, а PaintBox, что надо изменить?

Последний раз редактировалось UMmi, 19.11.2006 в 01:12.
Ответить с цитированием
  #9  
Старый 19.11.2006, 12:19
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Код:

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  bm1, bm2: TBitmap;
begin
   bm1 := TBitmap.Create;
   bm1.LoadFromFile( 'c:\WINDOWS\Пузыри.bmp' );
   bm2 := TBitmap.Create;
   bm2.Width := ClientWidth;
   bm2.Height := ClientHeight;
   bm2.Canvas.Brush.Bitmap := bm1;
   bm2.Canvas.FillRect( bm2.Canvas.ClipRect );
   PaintBox1.Canvas.Draw( 0, 0, bm2 );
   bm2.Free;
   bm1.Free;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter