Форум: "Media";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизCopyRect Найти похожие ветки
← →
ser_ega (2004-09-30 21:40) [0]Привет! Сделал так:
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 сохранить в файл!
← →
Рыба © (2004-09-30 22:54) [1]Не понял, ты имаг сам на себя что ли копируешь? :))
Лучше делай так:
var Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try
ARect := Rect(0, 0, 50, 50);
with Bmp, ARect do begin
Canvas.CopyMode := cmWhiteness;
Canvas.CopyRect(Rect(0,0,Right-Left,Bottom - Top), Image1.Canvas, ARect);
end;
Bmp.SaveToFile("copyrect.bmp");
finally
Bmp.Free;
end;
end;
← →
Рыба © (2004-09-30 22:57) [2]Уй забул размеры битмапа установить:
var Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try
ARect := Rect(0, 0, 50, 50);
with Bmp, ARect do begin
Width := Right-Left;
Height := Bottom - Top;
Canvas.CopyMode := cmWhiteness;
Canvas.CopyRect(Rect(0,0,Width,Height), Image1.Canvas, ARect);
end;
Bmp.SaveToFile("copyrect.bmp");
finally
Bmp.Free;
end;
end;
← →
ser_ega (2004-09-30 23:10) [3]Как-то не так получается как бы мне хотелось! Ты сделал, что Image стает белым цветом и сохраняет этот белый квадрат! А мне надо из картинки скопировать Rect и сохранить этот Rect(а не то что осталось от Rect) в Файл!
← →
Рыба © (2004-09-30 23:26) [4]Белый, потомучто
> Canvas.CopyMode := cmWhiteness;
Ты сам так написал.
Укажи Canvas.CopyMode := cmSrcCopy;
← →
ser_ega (2004-09-30 23:51) [5]А ты можеш объяснить что такое Rect(0,0,Width,Height) и ARect? Что это за прямоугольники? Чето не могу понять!
← →
ser_ega (2004-10-01 10:30) [6]А нет, все понятно.
← →
ser_ega (2004-10-02 22:21) [7]А кто это написал "А нет, все понятно"? Точно не я!
Кто нибуть, расскажите что такое Rect(0,0,Width,Height) и ARect, какова их роль? Ато я копирую прямоугольник, а он получается совсем в других пропорциях! Что за ДЕЛА!
← →
Рыба © (2004-10-02 22:41) [8]ARect := Rect(0, 0, 50, 50); - здесь задаем прямоугольник, который надо скопировать.
Rect(0,0,Width,Height) - прямоугольник растра, на который копируем (т.е. весь битмап).
← →
ser_ega (2004-10-02 23:59) [9]Ну если я сделаю так:
Canvas.CopyRect(Rect(0,0,313,225), Image1.Canvas, Rect(0,0,313,225));
то поидее пропорции должны быть одинаковые? А у меня они совсем РАЗНЫЕ! Получается по ширине растянуто, а по высоте сжато!
← →
Рыба © (2004-10-03 12:54) [10]>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-03 23:08) [11]Чето не получается! А ты можеш сделать такую прогу (правильно работающую) и скинуть мне на мыло? ПЛИЗ!
← →
Рыба © (2004-10-03 23:18) [12]Сделать могу, скинуть не могу :))
Покажи код.
ЗЫ:
Попробуй поменять местами прямоугольники:
Canvas.CopyRect(ARect, Image1.Canvas, Rect(0,0,Width,Height));
Может быть я чего попутал... ))
← →
Рыба © (2004-10-03 23:20) [13]Хотя нет, ничего не попутал. Ищи у себя ошибку.
← →
ser_ega (2004-10-03 23:53) [14]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;
← →
ser_ega (2004-10-03 23:57) [15]Width и Height к чем относится? К Bmp или к Arect?
← →
Рыба © (2004-10-04 00:21) [16]>ser_ega (03.10.04 23:57) [15]
>Width и Height к чем относится? К Bmp или к Arect?
К Bmp.
Не похоже, что это ты прямо из исходников скопировал...
← →
Mihey_temporary © (2004-10-04 00:39) [17]
> Не похоже, что это ты прямо из исходников скопировал...
А может он F9 ещё не нажимал? :)
← →
ser_ega (2004-10-04 00:43) [18]Что значит не нажимал? Я говорю что пропорции не совпадают, значит нажимал!
<Рыба
А Right, Left,Bottom и Top тогда к чему относятся? Ведь у BMP таких нет!
← →
Рыба © (2004-10-04 00:52) [19]>А Right, Left,Bottom и Top тогда к чему относятся? Ведь у BMP таких нет!
Это уже от ARect.
← →
Рыба © (2004-10-04 00:58) [20]Может ты Edit-ы перепутал? :)
← →
ser_ega (2004-10-04 11:25) [21]Так я уже и без них делал!!!
----
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;
----
А ты попробуй у себя такой код! И потом скажеш идет или нет! ПЛИЗ!
← →
ser_ega (2004-10-04 11:54) [22]Аааааааааааа! Нашел я в чем у меня прогон! У меня просто для Image1.Stretch:=true!
Еще такой вопросик: Можна ли узнать какой размер битмапа (в байтах) без сохранения его на винт?
Спасибо тебе за все!
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.078 c