Модераторы: Snowy, Alexeis, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как заполнить Canvas рисунком 
:(
    Опции темы
UMmi
Дата 16.11.2006, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Должно быть есть какая-то стандартная функция для заполнения Canvas рисунком?
PM   Вверх
Alexeis
Дата 16.11.2006, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Код

  Canvas.Draw(0, 0, Image);

Модератор: вообще для графики у нас есть спец раздел.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 16.11.2006, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Из DRKB:
Код
procedure TForm.OnPaint(Sender: TObject); 

  procedure Tile(c: TCanvas; b: TBitMap); 
  var 
    x, y, h, w, i, j: integer; 
  begin 
    with b do 
    begin 
      h := b.height; 
      w := b.width; 
    end; 
    y := 0; 
    with c.Cliprect do 
    begin 
      i := bottom - top - 1; //высота 
      j := right - left - 1; //ширина 
    end; 
    while y < i do 
    begin 
      x := 0; 
      while x < j do 
      begin 
        c.draw(x, y, b); 
        inc(x, w); 
      end; 
      inc(y, h); 
    end; 
  end; 

begin 
  if Sender is TForm then 
    Tile(TForm(Sender).Canvas, fTileWith); 
end;

PM MAIL   Вверх
UMmi
Дата 16.11.2006, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Цитата(alexeis1 @ 16.11.2006,  00:59)
Код

  Canvas.Draw(0, 0, Image);

Модератор: вообще для графики у нас есть спец раздел.

to alexeis1: А image как прописать???

to Модератор Ок, буду знать.

to Snowy: я недавно начал програмировать в Delphi, многого еще не знаю - не мог бы ты объсннить как из рисунка сделать Bitmap и подключить.
PM   Вверх
Snowy
Дата 16.11.2006, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Цитата(UMmi @  16.11.2006,  02:15 Найти цитируемый пост)
А image как прописать???
Под image и подразумевается bitmap.

Цитата(UMmi @  16.11.2006,  02:15 Найти цитируемый пост)
как из рисунка сделать Bitmap и подключить
Зависит от того, где у тебя находится рисунок smile
P.S. Что значит "подключить"? К чему подключить?
PM MAIL   Вверх
UMmi
Дата 16.11.2006, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Цитата(Snowy @ 16.11.2006,  02:22)
Цитата(UMmi @  16.11.2006,  02:15 Найти цитируемый пост)
как из рисунка сделать Bitmap и подключить
Зависит от того, где у тебя находится рисунок smile
P.S. Что значит "подключить"? К чему подключить?

Про "подключить" вопрос снимается - я не корректно выразился.smile Если рисунок находится на жестком диске. Или на крайняк в папке проекта.
PM   Вверх
Alexeis
Дата 16.11.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(UMmi @  16.11.2006,  02:28 Найти цитируемый пост)
Если рисунок находится на жестком диске. Или на крайняк в папке проекта. 

Кинуть на форму имагу и загрузить в нее изображение.
Image1.Picture.Graphic.LoadFromFile();


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
UMmi
Дата 16.11.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Цитата(alexeis1 @ 16.11.2006,  10:21)
Цитата(UMmi @  16.11.2006,  02:28 Найти цитируемый пост)
Если рисунок находится на жестком диске. Или на крайняк в папке проекта. 

Кинуть на форму имагу и загрузить в нее изображение.
Image1.Picture.Graphic.LoadFromFile();

Ошибка памяти. Как заполнить Canvas рисунком???
PM   Вверх
Alexeis
Дата 16.11.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(UMmi @  16.11.2006,  17:18 Найти цитируемый пост)
Ошибка памяти.

Подробней, что за картина и весь код который ее загружал. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
UMmi
Дата 16.11.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



procedure TForm1.Image1Click(Sender: TObject);
begin
   Image1.Picture.Graphic.LoadFromFile('1.bmp');
end;
 картинка 1Мб
PM   Вверх
Alexeis
Дата 16.11.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



UMmi, сорри ошибочка вышла
Код

Img1.Picture.LoadFromFile('1.bmp');



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 16.11.2006, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Вот пример

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  FonSample.zip 38,33 Kb
PM MAIL   Вверх
Snowy
Дата 16.11.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



А вот пример через имагу и стретч

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  StretchSample.zip 10,91 Kb
PM MAIL   Вверх
UMmi
Дата 16.11.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Спасибо большое! smile У меня возник вопрос, я видел, это можно сделать с использованием BitBlt.  Какой код это выполняет для вышеприведенном примера?


PM   Вверх
Snowy
Дата 16.11.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Первый пример - BitBlt, второй - StretchBlt.
Прада в чистом виде так не прописано, но внутренняя реализация по сути такова.

Если хочется видеть именно BitBlt, то замени строчку
Код
      Canvas.draw(x, y, fon);
на
Код
      BitBlt(Canvas.Handle, x, y, w, h, fon.Canvas.Handle, 0, 0, SRCCOPY);

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.