Pa zapravo Pixels radi dosta sporo.
Ono sto bih ja preporucio jeste nesto ovako:
Code:
type
TPixelArray = Array of Array of Integer;
procedure ImageToPixelArray(Image: TImage; PixelArray: TPixelArray);
var
Bitmap: TBitmap;
ScanLine: PIntegerArray;
X, Y: Integer;
begin
Bitmap := TBitmap.Create;
Bitmap.Assign(Image.Picture.Graphic);
Bitmap.PixelFormat := pf32bit;
SetLength(PixelArray, 0);
SetLength(PixelArray, Bitmap.Height, Bitmap.Width);
for Y := 0 to Bitmap.Height - 1 do
begin
ScanLine := Bitmap.ScanLine[Y];
for X := 0 to Bitmap.Width - 1 do
PixelArray[Y, X] := ScanLine[X];
end;
Bitmap.Free;
end;
procedure PixelArrayToImage(Image: TImage; PixelArray: TPixelArray);
var
Bitmap: TBitmap;
ScanLine: PIntegerArray;
X, Y: Integer;
begin
Bitmap := TBitmap.Create;
Bitmap.PixelFormat := pf32bit;
Bitmap.Height := Length(PixelArray);
Bitmap.Width := Length(PixelArray[0]);
for Y := 0 to Bitmap.Height - 1 do
begin
ScanLine := Bitmap.ScanLine[Y];
for X := 0 to Bitmap.Width - 1 do
ScanLine[X] := PixelArray[Y, X];
end;
Image.Picture.Assign(Bitmap);
Bitmap.Free;
end;
[Ovu poruku je menjao ntojzan dana 20.04.2006. u 20:17 GMT+1]