.Jpeg Image 600x600を分析しようとしていますが、RED値が230を超え、Green値が200を超えている場所を教えてほしいのです。現在、このプロジェクトを進めていますが、反復するのに時間がかかりすぎます。画像全体、およびピクセルカラーの奇妙な値を取得します(Color= + inttostr(RGB)
)。誰かが私に手を貸してくれませんか?
type
PRGBTripleArray = ^TRGBTripleArray;
TRGBTripleArray = array[0..4095] of TRGBTriple;
procedure TForm2.Button1Click(Sender: TObject);
var
RGB: Byte;
X, Y: Integer;
R, G, B: Byte;
Bitmap1: TBitmap;
ColorRGB: LongInt;
Pixels: PRGBTripleArray;
begin
Memo1.Lines.Clear;
Bitmap1 := TBitmap.Create;
try
Bitmap1.Assign(Image1.Picture.Graphic);
for Y := 0 to Bitmap1.Height - 1 do
begin
Pixels:= Bitmap1.ScanLine[Y];
Memo1.Lines.Add('======================');
Memo1.Lines.Add('Line # ' + IntToStr(Y));
Memo1.Lines.Add('======================');
for X := 0 to Bitmap1.Width - 1 do
begin
ColorRGB := ColorToRGB(Bitmap1.Canvas.Pixels[x, y]);
R := GetRValue(ColorRGB);
G := GetGValue(ColorRGB);
B := GetBValue(ColorRGB);
RGB:= R*G*B;
Memo1.Lines.Add(
'line=' + IntToStr(Y)
+ ' row=' + IntToStr(X)
+ ' Colour=' + IntToStr(RGB)
+ ' Red=' + IntToStr (R) // red
+ ' Green=' + IntToStr (G) // blue
+ ' Blue=' + IntToStr (B) // green
)
end;
end;
finally
Bitmap1.free;
end;
end;
end.