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

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

Нереальные цвета после масштабирования битмапа


Vinum ©   (2008-05-20 00:30:00) 

Здравствуйте. Вопрос в следующем: есть форма, на форме пэйнтбокс. Хочу в нем по клику отобразить картинку, уменьшенную в 2 раза.

uses tinyJPGGIFBMP;

procedure TForm1.Button1Click(Sender: PObj);
var rect:trect; pic:pbitmap;
begin
pic:=NewBitmap(0,0);
tinyLoadJPGGIFBMPfile(pic,'111.jpg');
paintbox1.Height:=trunc(pic.Height/2);
paintbox1.Width:=trunc(pic.Width/2);
rect.Left:=0;
rect.Top:=0;
rect.BottomRight.X:=trunc(pic.Width/2);
rect.BottomRight.Y:=trunc(pic.Height/2);
pic.StretchDraw(paintbox1.canvas.handle,rect);
pic.Free;
end;


если масштаб картинки 1:1, то она рисуется хорошо. Но если начинаешь ее уменьшать в размерах, то такое ощущение, что цвета куда-то деваются, и вообще нереальными какими-то становятся.
Это можно как-нибудь решить?


Vinum   (2008-05-20 07:39:00) [1]

>перед pic.StretchDraw:
> SetStretchBltMode(paintbox1.canvas.Handle, HALFTONE);
Дмитрий К, спасибо большое
>Рисовать лучше в OnPaint.
Я знаю :) мне б так сначала нарисовать надо было


Дмитрий К   (2008-05-20 00:46:00) [2]

перед pic.StretchDraw:
 SetStretchBltMode(paintbox1.canvas.Handle, HALFTONE);
Рисовать лучше в OnPaint.


Наверх

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