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

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

CopyRect


Страницы:   1 2

ser_ega ©   (2004-09-30 21:40:00) 

Привет! Сделал так:
var
 ARect: TRect;
begin
with Image1.Canvas do
 begin
   CopyMode := cmWhiteness;
   ARect := Rect(0, 0, 50, 50);
   CopyRect(ARect, Image1.Canvas, ARect);
   CopyMode := cmSrcCopy; { restore the copy mode }
 end;
End;
Как теперь скорированный ARect сохранить в файл!


ser_ega   (2004-10-04 11:54:00) [1]

Аааааааааааа! Нашел я в чем у меня прогон! У меня просто для Image1.Stretch:=true!

Еще такой вопросик: Можна ли узнать какой размер битмапа (в байтах) без сохранения его на винт?

Спасибо тебе за все!


ser_ega   (2004-10-04 11:25:00) [2]

Так я уже и без них делал!!!
----
Bmp := TBitmap.Create;
 try
   ARect := Rect(0,0,225,313);
   with Bmp, Arect do begin
        Height :=Bottom - Top;
        Width :=Right-Left;
        Canvas.CopyRect(Rect(0,0,Width,Height), Image1.Canvas, ARect);
  end;
  Bmp.SaveToFile('c:\copyrect.bmp');
  Image2.Picture.Bitmap:=bmp;
  finally
    Bmp.Free;
  end;
----
А ты попробуй у себя такой код! И потом скажеш идет или нет! ПЛИЗ!


Рыба   (2004-10-04 00:58:00) [3]

Может ты Edit-ы перепутал? :)


Рыба   (2004-10-04 00:52:00) [4]

>А Right, Left,Bottom и Top тогда к чему относятся? Ведь у BMP таких нет!

Это уже от ARect.


ser_ega   (2004-10-04 00:43:00) [5]

Что значит не нажимал? Я говорю что пропорции не совпадают, значит нажимал!

<Рыба
А Right, Left,Bottom и Top тогда к чему относятся? Ведь у BMP таких нет!


Mihey_temporary   (2004-10-04 00:39:00) [6]


> Не похоже, что это ты прямо из исходников скопировал...


А может он F9 ещё не нажимал? :)


Рыба   (2004-10-04 00:21:00) [7]

>ser_ega  (03.10.04 23:57) [15]
>Width и Height к чем относится? К Bmp или к Arect?

К Bmp.
Не похоже, что это ты прямо из исходников скопировал...


ser_ega   (2004-10-03 23:57:00) [8]

Width и Height к чем относится? К Bmp или к Arect?


ser_ega   (2004-10-03 23:53:00) [9]

Bmp := TBitmap.Create;
 try
  ARect := Rect(StrtoInt(Edit1.Text), StrtoIntEdit2.Text),
                StrtoInt(Edit3.Text), StrtoInt(Edit4.Text));
  with Bmp, Arect do begin
    Width :=Right-Left;
    Height := Bottom - Top;
    Canvas.CopyRect(ARect(0,0,Width,Height), Image1.Canvas, ARect);
  end;
  Bmp.SaveToFile('c:\copyrect.bmp');

  Image2.Picture.Bitmap:=bmp;
  finally
    Bmp.Free;
  end;


Рыба   (2004-10-03 23:20:00) [10]

Хотя нет, ничего не попутал. Ищи у себя ошибку.


Рыба   (2004-10-03 23:18:00) [11]

Сделать могу, скинуть не могу :))
Покажи код.

ЗЫ:
Попробуй поменять местами прямоугольники:
Canvas.CopyRect(ARect, Image1.Canvas, Rect(0,0,Width,Height));
Может быть я чего попутал... ))


ser_ega   (2004-10-03 23:08:00) [12]

Чето не получается! А ты можеш сделать такую прогу (правильно работающую) и скинуть мне на мыло? ПЛИЗ!


Рыба   (2004-10-03 12:54:00) [13]

>ser_ega  (02.10.04 23:59) [9]
>Canvas.CopyRect(Rect(0,0,313,225), Image1.Canvas, Rect(0,0,313,225));

Если ты сделаешь так, и размеры растра при этом будут 313х225, то должно работать нормально. Ищи ошибку в другом месте и читай справку.


ser_ega   (2004-10-02 23:59:00) [14]

Ну если я сделаю так:
Canvas.CopyRect(Rect(0,0,313,225), Image1.Canvas, Rect(0,0,313,225));
то поидее пропорции должны быть одинаковые? А у меня они совсем РАЗНЫЕ! Получается по ширине растянуто, а по высоте сжато!


Рыба   (2004-10-02 22:41:00) [15]

ARect := Rect(0, 0, 50, 50); - здесь задаем прямоугольник, который надо скопировать.
Rect(0,0,Width,Height) - прямоугольник растра, на который копируем (т.е. весь битмап).


ser_ega   (2004-10-02 22:21:00) [16]

А кто это написал "А нет, все понятно"? Точно не я!

Кто нибуть, расскажите что такое Rect(0,0,Width,Height) и ARect, какова их роль? Ато я копирую прямоугольник, а он получается совсем в других пропорциях! Что за ДЕЛА!


ser_ega   (2004-10-01 10:30:00) [17]

А нет, все понятно.


ser_ega   (2004-09-30 23:51:00) [18]

А ты можеш объяснить что такое Rect(0,0,Width,Height) и ARect? Что это за прямоугольники? Чето не могу понять!


Рыба   (2004-09-30 23:26:00) [19]

Белый, потомучто
>   Canvas.CopyMode := cmWhiteness;
Ты сам так написал.

Укажи Canvas.CopyMode := cmSrcCopy;


ser_ega   (2004-09-30 23:10:00) [20]

Как-то не так получается как бы мне хотелось! Ты сделал, что  Image стает белым цветом и сохраняет этот белый квадрат! А мне надо из картинки скопировать Rect и сохранить этот Rect(а не то что осталось от Rect) в Файл!


Страницы:   1 2

Наверх

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