Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Поворот картинок   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-1127211115
SlyFox
2005-09-20 14:11
2005.10.09
UNIX & C: откровения :)


14-1127143653
Андрей Жук
2005-09-19 19:27
2005.10.09
А как можно использовать блок питания AT?


14-1126773261
Rentgen
2005-09-15 12:34
2005.10.09
Junior java developer :)


11-1107542324
Владимир Кладов
2005-02-04 21:38
2005.10.09
еще один VCL2KOL конвертер


3-1125062670
syte_ser78
2005-08-26 17:24
2005.10.09
Подключение к базе Paradox