Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что делаю не так? [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо