Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.104 c
6-1085649239
Delpher_Gray
2004-05-27 13:13
2004.07.25
Проблема с HTTP->Get запросом


8-1084306993
Рома
2004-05-12 00:23
2004.07.25
Уменьшение битмапа


6-1085511577
Udj
2004-05-25 22:59
2004.07.25
Помогите новичку написать програмку для выкачивания страничек


3-1088487606
Ярослав
2004-06-29 09:40
2004.07.25
Массивы в IB


14-1088788528
_none_
2004-07-02 21:15
2004.07.25
Почему вы не явились на неофициальную ММП?