Главная страница
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.05 c
15-1136617814
begin...end
2006-01-07 10:10
2006.01.29
С Днём рождения! 7 января


4-1132145443
SergGG
2005-11-16 15:50
2006.01.29
послать сообщение на другой компьютер


2-1136634468
Nic
2006-01-07 14:47
2006.01.29
Как закрыть программу в C#


15-1136034728
MasterPaleva
2005-12-31 16:12
2006.01.29
Что значит новый год для вас?


4-1132324773
Arazel
2005-11-18 17:39
2006.01.29
Hook Shell_TrayWnd, Помогите не в службу, а в дружбу.