gpt4 book ai didi

api - GDI+如何查询一个像素

转载 作者:行者123 更新时间:2023-12-03 18:31:32 24 4
gpt4 key购买 nike

我正在使用 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));
但我不知道这是否有帮助,因为我只需要查询像素而不需要绘制整个图片。

最佳答案

你可以借GetPixel来自 TGPBitmap 的方法类,仅用于获取像素颜色。要实现这个方法,你需要继承原始的TGPImage。类来访问 protected NativeImage字段(保存指向 Image 对象的指针)。

这是一个使用 interposer 类的示例:

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;

关于api - GDI+如何查询一个像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com