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

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

Проблемы с картинками


Анатолий ©   (2002-01-14 22:57:00) 

Вот код:
image2.picture.bitmap.Assign(image1.picture.graphic);
image2.Picture.Bitmap.Canvas.Pixels[x,y];
for i:=0 to image2.Picture.Bitmap.Width-1 do begin
for j:=0 to image2.Picture.Bitmap.Height-1 do begin

Допустим в image2 грузим файл размером 160*160, однако размер самого компонента image2 например 40*40 (при этом stretch:=true). Однако цикл будет работать с картинкой размер которой равен 160*160. Однако мне нужно, чтобы цикл анализировал "сплющенную" картинку размером 40*40 (т.е работать с картинкой, котороую я вижу в Image2, а не с той размер которой 160*160). Как такое сделать. Заранее спасибо!
Да, последний вопрос! В данном случае цикл работает с каждым пикселем, а как бы сделать так, чтобы цикл работал через один пиксель.


Анатолий   (2002-01-15 03:57:00) [1]

Большое спасибо Almaz!


Almaz   (2002-01-15 00:28:00) [2]

>Анатолий
В данном случае нужно использовать промежуточный Bitmap на который спроецировать "сплющенную" картинку, и с ним далее и работать:

var
Temp: TBitmap;
...
image2.picture.bitmap.Assign(image1.picture.graphic);
Temp := TBitmap.Create;
Temp.Width := Image2.Width; // Размеры сжатой картинки - 40
Temp.Height := Image2.Height; // Размеры сжатой картинки - 40
Temp.Canvas.StretchDraw(Rect(0, 0, Temp.Width, Temp.Height), Image2.Picture.Bitmap); // Уменьшаем картинку до 40х40
// Теперь работаем с Temp - который имеет размеры 40х40
for i:=0 to Temp.Width - 1 do begin
for j:=0 to Temp.Height - 1 do begin
...
Temp.Free;


Удачи.


Наверх

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