![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование CopyRect
Trenno © (2005-07-23 23:19:00)Никак немогу решить разделение картинки
BIG -bmp 20x20
c0 -bmp приемник 10x20 левой части BIG
c1 -bmp приемник 10x20 правой части BIG
ine,oute:TRect;
oute:=Rect(0,0,10,BIG.Height);
ine:=rect(0,0,10,BIG.height)
c0.Canvas.CopyRect(oute,Big.Canvas,ine);
ine:=rect(0,10,10,BIG.height)
c1.Canvas.CopyRect(oute,Big.Canvas,ine);
первую половику выводит,а
вторую зеркально,для проверки попробывал делить
на 3 части картинку 'ZBC' и увидел Z - нормально
B-перевернуто , третью картинку как перевернутые
и сжатые в одно место BC
проверяю Form1.Canvas.Draw( 250, 0, c0 );
почему глюки?
KilkennyCat (2005-07-24 14:04:00) [1]переворот достигается неправильным использованием координат.
BIG -bmp 20x20
c0 -bmp приемник 10x20 левой части BIG
c1 -bmp приемник 10x20 правой части BIG
//procedure CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect);
c0.Canvas.CopyRect(rect(0,10,0,20),Big.Canvas,rect(0,10,0,20));
c1.Canvas.CopyRect(rect(0,10,0,20),Big.Canvas,rect(10,20,0,20));
Trenno (2005-07-24 13:55:00) [2]простой код
должен в с0 получить 'Т'
а в с1 изображение 'Е',но оно перевернутое!
До S недобратся
procedure TForm1.Button2Click(Sender: TObject);
var
BIG:TBitmap;
c0,c1:TBitmap;
Oute,ine:TRect;
begin
Big:=TBitmap.Create;
c0:=TBitmap.Create;
c1:=TBitmap.Create;
BIG.Width:=30;
BIG.Height:=15;
BIG.Canvas.TextOut(0,0,'TEST');// в изображение
Form1.Canvas.Draw( 0, 20, big );
c0.Height:=BIG.Height;
c0.Width:=BIG.Width div 4;
oute:=Rect(0,0,c0.Width,BIG.Height);
ine:=rect(0,0,c0.Width,BIG.height);
c0.Canvas.CopyMode:=cmSrcCopy;
c0.Canvas.CopyRect(oute,Big.Canvas,ine);
Form1.Canvas.Draw( 0, 40, c0 ); // T
c1.Height:=BIG.Height;
c1.Width:=BIG.Width div 4;
oute:=Rect(0,0,c0.Width,BIG.Height);
ine:=rect(c0.Width*2,0,c0.Width,BIG.height); // шаг сдвиг справо
c1.Canvas.CopyMode:=cmSrcCopy;
c1.Canvas.CopyRect(oute,Big.Canvas,ine);
Form1.Canvas.Draw( 0, 60, c1 ); // E перевернутое
alex-drob (2005-07-23 23:50:00) [3]Строка
ine:=rect(0,10,10,BIG.height)
не правельная
Тебе нужно скопировать Rect(10,0,20,BIG.height)