Форум: "Основная";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизПоворот картинок Найти похожие ветки
← →
Fostr (2005-09-16 09:03) [0]Господа! Очень прошу разъяснить как работает эта процедура поворота картинки:
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
Image,Image_REV: TBitMap;
source, result: PByteArray;
begin
Image:=TBitMap.Create;
Image_REV:=TBitMap.Create;
Image.LoadFromFile("home.bmp");
Image.PixelFormat :=pf24bit;
Image_REV.PixelFormat :=pf24bit;
Image_REV.Width:=Image.Height;
Image_REV.Height:=Image.Width;
{до этого момента все понятно}
for y:=0 to (Image.Height-1) do
begin
source:=Image.ScanLine[y];
for x:=0 to (Image.Width-1) do
begin
result:=Image_REV.ScanLine[x];
result[(Image.Height-1-y)*3]:=source[x*3];
result[(Image.Height-1-y)*3+1]:=source[x*3+1];
result[(Image.Height-1-y)*3+2]:=source[x*3+2];
end;
end;
Form1.Canvas.Draw(10,100,Image_REV); {эта строка понятна}
end;
Если можно, то прямо по строчкам. Заранее спасибо!
← →
MBo © (2005-09-16 09:17) [1]Наверно, стоит прочитать в хелпе про ScanLine.
Практически исчерпывающая статья об этом:
http://www.efg2.com/Lab/ImageProcessing/Scanline.htm
Процедура предназначена для поворота 24-х битных картинок на 90 градусов.
← →
Fostr (2005-09-16 09:21) [2]Огромное спасибо! Сейчас начну читать! В хелпе дельфийском о ScanLine я ничего толкового не нашел, кроме того, что она "Provides indexed access to each line of pixels" и примерчик. Так что еще раз спасибо за ссылку на статью.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c