[英]GDI+ how to query a pixel
我正在使用progdigy.com的 Delphi 6的GDI +库。
我使用TGPImage.Create(AFilename)
加载了图像。
问题是,如何查询单个像素(RGBA值)? 对象TGPImage似乎没有这样的东西。 该库中的文档仅链接到GDI +的Microsoft文档,到目前为止,该文档已断开。
PS:我可以使用绘制图像
TGPGraphics.Create(PaintBox1.Canvas.Handle).DrawImage(Image, GPRect(ALeft, ATop, AWidth, AHeight));
但我不知道这是否有帮助,因为我只需要查询像素而无需绘制整个图片。
您可以从TGPBitmap
类借用GetPixel
方法,该方法仅用于获取像素颜色。 要实现此方法,您将需要对原始TGPImage
类进行子类化,以访问受保护的NativeImage
字段(保留指向Image
对象的指针)。
这是使用插入器类的示例:
uses
GDIPAPI, GDIPOBJ;
type
// we need to subclass the TGPImage to access the protected NativeImage field
TGPImage = class(GDIPOBJ.TGPImage)
public
function GetPixel(X, Y: Integer; out Color: TGPColor): TStatus;
end;
implementation
{ TGPImage }
function TGPImage.GetPixel(X, Y: Integer; out Color: TGPColor): TStatus;
begin
Result := SetStatus(GdipBitmapGetPixel(GPBITMAP(NativeImage), X, Y, Color));
end;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.