SCANLINE DELPHI КАК РАБОТАЕТ

Scanline - это метод доступа к данным пикселей изображения и широко используется при работе с графикой в Delphi. Вместо того, чтобы использовать метод функции GetPixel/ SetPixel, который замедляет работу приложения, метод scanline представляет каждую строку изображения как массив байтов.

Метод scanline может использоваться для получения данных о цвете пикселя, а также для установки значения цвета пикселя. Для примера, рассмотрим следующий код для определения цвета пикселя:

var ColorOfPixel : TColor; BitMap : TBitMap; begin BitMap := TBitMap.Create; try BitMap.LoadFromFile('image.bmp'); ColorOfPixel := BitMap.Canvas.Pixels[100, 100]; finally BitMap.Free; end; end;

Пример выше загружает изображение из файла и затем, используя свойство Pixels, определяет цвет пикселя в координатах (100, 100). Однако, вместо свойства Pixels лучше использовать метод scanline, который работает быстрее. Для этого необходимо загрузить изображение следующим образом:

var ColorOfPixel : TColor; BitMap : TBitMap; X, Y : Integer; PixelRow : PRGBTripleArray; begin BitMap := TBitMap.Create; try BitMap.LoadFromFile('image.bmp'); for Y := 0 to BitMap.Height - 1 do begin PixelRow := BitMap.ScanLine[Y]; for X := 0 to BitMap.Width - 1 do begin ColorOfPixel := RGB(PixelRow[X].rgbtRed, PixelRow[X].rgbtGreen, PixelRow[X].rgbtBlue); end; end; finally BitMap.Free; end; end;

Пример выше загружает изображение и перебирает каждую строку изображения, доступ к которым осуществляется через метод ScanLine. Каждый пиксель представляется структурой RGBTriple, содержащей составляющие цвета (красный, зеленый и синий). Например, если нужно изменить цвет пикселя в определенных координатах, можно использовать:

var BitMap : TBitMap; PixelRow : PRGBTripleArray; begin BitMap := TBitMap.Create; try BitMap.LoadFromFile('image.bmp'); PixelRow := BitMap.ScanLine[Y]; PixelRow[X].rgbtRed := 255; // устанавливаем красный цвет PixelRow[X].rgbtGreen := 0; // устанавливаем зеленый цвет PixelRow[X].rgbtBlue := 0; // устанавливаем синий цвет finally BitMap.Free; end; end;

Таким образом, метод scanline позволяет работать с пиксельными данными изображения в Delphi гораздо быстрее, чем использование свойства Pixels.

Автосканер Delphi Autocom, пример диагностики на авто

Co potrafi chińskie Delphi w Mercedesie vs Star-Diagnosis

Delphi #171 - Telnet

Autocom cdp, Delphi DS150e. Пример работы Часть 1

how to operate Delphi AutoCom Diagostic Software to Diagnose Mercedes Sprinter w906 2012

Delphi DS150 PRO Diagnostic Scanner with Bluetooth - Test

Delphi Diagnostic Scan Tool Demonstration Video

Delphi Diagnostic Scan Tool Demo

Функции и возможности Delphi DS150E

Delphi Diagnostic Scan Tool

Реклама
Новое
Реклама