Форум: "Media";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизJPEG + разбиение рисунка Найти похожие ветки
← →
Ozone © (2004-05-11 13:05) [0]Есть JPEG-картинка размера 704х258. Мне необходимо разбить ее на две размерами 352x258 и "засунуть" в разные Image.
Подскажите это можно реализовать как можно быстрее?
← →
Ozone © (2004-05-11 13:29) [1]Сделал так
var
jp: TJPEGImage;
bmp: TBitmap;
begin
bmp := TBitMap.Create;
jp := TJPEGImage.Create;
jp.LoadFromFile("...");
bmp.Assign(jp);
Image1.Canvas.CopyRect(Rect(0,0,352,258),bmp.Canvas,Rect(0,0,352,258));
Image2.Canvas.CopyRect(Rect(0,0,352,258),bmp.Canvas,Rect(352,0,704,258));
bmp.Free;
jp.Free;
end;
Есть более быстрые алгоритмы?
← →
Mihey © (2004-05-11 15:02) [2]2 Ozone:
Алгоритмов более быстрыз думаю не придумать, а реализацию - вполне можно. Только у тебя ошибочка есть:
Image1.Canvas.CopyRect(Rect(0,0,352,258),bmp.Canvas,Rect(0,0,352,258));
====>
Image1.Picture.Bitmap.Canvas.CopyRect(Rect(0,0,352,258),bmp.Canvas,Rect(0,0,352,258));
Иначе не сохранить будет (т.е. ты не засунул в TImage). Естесссно, TImage.Picture надо бы ещё и создать,и размеры выставить. А копировнаие можно через BitBlt:
BitBlt(Image1.Picture.Bitmap.Canvas.Handle, 0, 0, 352, 258,
bmp.Canvas.Handle, 0, 0, SrcCopy);
BitBlt(Image2.Picture.Bitmap.Canvas.Handle, 0, 0, 352, 258,
bmp.Canvas.Handle, 352, 0, SrcCopy);
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.036 c