Главная страница
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.043 c
15-1136072053
Cerberus
2006-01-01 02:34
2006.01.29
Помогите найти человека.


3-1133356299
Alena
2005-11-30 16:11
2006.01.29
Запрос к Active Directory


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


15-1136609923
БарЛог
2006-01-07 07:58
2006.01.29
Коаксильный кабель


15-1136837731
WuBuGuDu
2006-01-09 23:15
2006.01.29
Обращение к объектам в runtime