![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выполнить кропинг(срез) изображения? [D6, D7, Win2k, WinXP]
S_Flash © (2005-08-22 16:07:00)Подскажите, если можн , то на примере, как реализовать кропинг изображения. Например для ресайза, я использую такой код:
Scr:= TBitmap.Create;
Dest:= TBitmap.Create;
try
Form1.Image1.Picture.LoadFromFile(file_source);
Scr.Assign(Form1.Image1.Picture.Graphic);
Dest.Assign(Scr);
Dest.Width:= размер по горизонтали;
Dest.Height:= размер по вертикали;
SetStretchBltMode(Dest.Canvas.Handle, HALFTONE);
StretchBlt(Dest.Canvas.Handle, 0, 0, Dest.Width, Dest.Height, Scr.Canvas.Handle, 0, 0, Scr.Width, Scr.Height, SRCCOPY);
j.Assign(Dest);
j.CompressionQuality:= quality;
j.Compress;
j.SaveToFile('file_save');
finally
Scr.Free;
Dest.Free;
j.Free;
end;
S_Flash (2005-08-23 00:19:00) [1]Все получилось, спасибо!
Vcoder (2005-08-22 23:00:00) [2]Не понимаю, в чем проблема - кропинг, как я понимаю, обрезка? Так используй
BitBltвместоStretchBlt:
BitBlt(Dest.Canvas.Handle,
0,
0,
Dest.Width,
Dest.Height,
Scr.Canvas.Handle,
xFrom,
yFrom,
SRCCOPY);
Скопирует вDestпрямоугольный участок, начинающийся с координат(xFrom,yFrom)и имеющий размер(Dest.Width,Dest.Height).
PS. Если неверно понял - звиняюсь. Опиши подробнее, в чем проблема.