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

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

Картинку из файла уменьшить и поместить в tbitmap


Rembo ©   (2010-05-26 10:34:00) 

Всем привет!
Делаю так:
var  pic:TPicture;bmp1,bmp2:tbitmap;
...
pic.LoadFromFile('image.jpg');
bmp1.Assign(pic.Graphic);
bmp2.Canvas.CopyRect(rect(0,0,164,164), bmp1.Canvas,rect(0,0,bmp1.Width,bmp1.Height));

В итоге получаю уменьшенную картинку в bmp2, но при этом вижу дефект цветов, то есть она имеет вид будто открыли в пейнте 32 битный бмпшник и сохранили в 8 битный. Как это можно исправить?


Rembo   (2010-05-26 12:03:00) [1]

bmp2.PixelFormat := pf24bit; - непомгло
SetStretchbltMode - искал не нашел, за то нашел:
bmp1.Canvas.StretchDraw(rect(0,0,164,164),pic.Graphic); - все получилось пасиба


MBo   (2010-05-26 11:51:00) [2]

SetStretchbltMode у приемного Canvas установить в HALFTONE


Омлет   (2010-05-26 11:41:00) [3]

А зачем bmp1? Можно сразу на bmp2 уменьшать из pic.

bmp2.PixelFormat := pf24bit;


Rembo   (2010-05-26 10:44:00) [4]

tbitmap грузит токо *.bmp а tpicture сам определяет какую графику использовать Tjpgimage или Tgifimage и т.д


Andy BitOff   (2010-05-26 10:38:00) [5]

А зачем pic? Почему нельзя сразу загрузить в bmp1?


Наверх

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