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

Вниз

Выполнить кропинг(срез) изображения?   Найти похожие ветки 

 
S_Flash   (2005-08-22 16:07) [0]

Подскажите, если можн , то на примере, как реализовать кропинг изображения. Например для ресайза, я использую такой код:

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;


 
Vcoder ©   (2005-08-22 23:00) [1]

Не понимаю, в чем проблема - кропинг, как я понимаю, обрезка? Так используй 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. Если неверно понял - звиняюсь. Опиши подробнее, в чем проблема.


 
S_Flash   (2005-08-23 00:19) [2]

Все получилось, спасибо!



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.042 c
15-1136585297
Ag.Smit
2006-01-07 01:08
2006.01.29
ASUS ATI Radeon 9600pro глючит!!!


11-1118291966
Fanny
2005-06-09 08:39
2006.01.29
Форма становится меньше по ширине


15-1135972937
версия для печати
2005-12-30 23:02
2006.01.29
События года


9-1124299115
Malkavian
2005-08-17 21:18
2006.01.29
Что-то плохое происходит... :(


3-1133350894
Asail
2005-11-30 14:41
2006.01.29
Проверка наличия индекса в таблице...