![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что делаю не так? [D2005, XP]
De1uxe © (2005-12-07 22:17:00)Уважаемые мастера помогите пожалуйста.
Имеется следующий код:
myrect:=rect(10,10,100,100);
bitmap:=tbitmap.Create;
bitmap1:=tbitmap.Create;
bitmap1.LoadFromFile('c:\2.bmp');
Bitmap.Canvas.CopyRect(myrect,bitmap1.Canvas,myrect);
bitmap.SaveToFile('c:\1.bmp');
Вот что я хочу от этого кода:
1. Открыл изображение 2.bmp
2. Отрезал прямоугольник с координатами (10,10,100,100)
3. Сохранил отрезаный кусок в 1.bmp
Но вместо этого я ничего ну получаю в файле 1.bmp
В чем дело?
Anatoly Podgoretsky (2005-12-08 00:39:00) [1]Какой брат - это близнецы, которые не читали правила.
Джо (2005-12-07 23:05:00) [2]
> [4] app © (07.12.05 22:42)
Нет, он брат вот этому:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1133976207&n=0
:)
app (2005-12-07 22:42:00) [3]Ты не брат ли случайно этому?
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1133968311&n=18
De1uxe (2005-12-07 22:33:00) [4]Всем большое спасибо! Работает
Джо (2005-12-07 22:26:00) [5]
procedure ExtractBitmapToFile (SrcBmp: TBitmap; Rect: TRect;
AFileName: string);
var
DestBmp: TBitmap;
DestRect: TRect;
begin
DestBmp := TBitmap.Create;
try
DestRect.Left := 0;
DestRect.Top := 0;
DestRect.Right := Rect.Right-Rect.Left;
DestRect.Bottom := Rect.Bottom-Rect.Top;
DestBmp.Width := DestRect.Right;
DestBmp.Height := DestRect.Bottom;
DestBmp.Canvas.CopyRect(DestRect,SrcBmp.Canvas,Rect);
DestBmp.SaveToFile(AFileName);
finally
DestBmp.Free;
end;
end;
Использовать:
procedure TForm1.Button1Click(Sender: TObject);
begin
ExtractBitmapToFile(
Image1.Picture.Bitmap,
Rect(10,10,100,100),
'd:\dest.bmp'
);
end;
Может что-то напутал, писал наскоро. Но вроде работает, как ожидается.
Reindeer Moss Eater (2005-12-07 22:25:00) [6]Видимо в том, что размеры bitmap 0х0