Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как вырезать часть из картинки


Автор: Sheff 16.6.2002, 16:46
У меня есть картинка, скажем, 640x480.
Мне нужно вырезать из неё часть по Rect'у: 10,10,100,100 и скопировать эту часть в TBitmap. Как мне это сделать.
P.S: TBitmap изначально пустой.

Автор: Song 16.6.2002, 16:55
TCanvas.CopyRect()

Автор: Sheff 16.6.2002, 19:18
Цитата(Song @ 16.6.2002, 17:55)
TCanvas.CopyRect()

А пример можно, я сам пробовал, но он у меня постоянно Access Violation выдаёт :(

Автор: Song 16.6.2002, 19:52
Цитата(Sheff @ 16.6.2002, 20:18)
Цитата(Song @ 16.6.2002, 17:55)
TCanvas.CopyRect()

А пример можно, я сам пробовал, но он у меня постоянно Access Violation выдаёт :(

А как пробовал-то ?

Автор: Sheff 16.6.2002, 21:45
Цитата(Song @ 16.6.2002, 20:52)
Цитата(Sheff @ 16.6.2002, 20:18)
[quote=Song,16.6.2002,17:55]TCanvas.CopyRect()

А пример можно, я сам пробовал, но он у меня постоянно Access Violation выдаёт :([/quote]
А как пробовал-то ?

Вот так:
Код

procedure ...;
var
   Bitmap:TBitmap;
   Rct:TRect;
begin
   Bitmap.Create();
   Rct.Top:=10;
   Rct.Left:=10;
   Rct.Right:=100;
   Rct.Bottom:=100;
   Bitmap.Canvas.CopyRect(Rct,MainImage.Canvas,Rct);
end;

Автор: Baa 17.6.2002, 02:08
И правильно, потому как переменная Bitmap неинициализирована, и ведь компилер тебя предупреждал ;)
Попробуй так:
procedure ...;
var
  Bitmap:TBitmap;
  Rct:TRect;
begin
  Bitmap := TBitmap.Create;
  Rct.Top:=10;
  Rct.Left:=10;
  Rct.Right:=100;
  Rct.Bottom:=100;
  Bitmap.Canvas.CopyRect(Rct,MainImage.Canvas,Rct);
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)