Delphi 2010でGDIPlusを使用して、TImageのマウスカーソルの下のピクセルからアルファ値を取得するにはどうすればよいですか?
私はこれを試しましたが、Aは常に255ですか? 私は何を間違っていましたか?
procedure TFormMain.Image1MouseMove ( Sender: TObject; Shift: TShiftState; X, Y: Integer );
var
GPBitmap: TGPBitmap;
iColorRef: Cardinal;
iColor: TColor;
A, R, G, B: Byte;
iARGB: ARGB;
begin
if Assigned ( Image1.Picture ) then
begin
GPBitmap := TGPBitmap.Create ( Image1.Picture.Bitmap.Handle );
try
// Get alpha 0-255 from GPBitmap
GPBitmap.GetPixel ( X, Y, iColorRef );
iARGB := ColorRefToARGB ( iColorRef );
A := GetAlpha ( iARGB );
AlphaUnderCursor1.Caption := 'Alpha: ' + IntToStr ( A );
iColor := Image1.Canvas.Pixels [ X, Y ];
GetRGB ( iColor, R, G, B );
Shape1.Brush.Color := iColor;
finally
GPBitmap.Free;
end;
end;