Arrays 德尔菲。将位图图像转换为二维数组
我有一个80x40像素的gif图像。此图像的调色板由几个在调色板中具有不同编号的类似颜色组成。如何构建一个二维数组,其中Arrays 德尔菲。将位图图像转换为二维数组,arrays,delphi,bitmap,2d,palette,Arrays,Delphi,Bitmap,2d,Palette,我有一个80x40像素的gif图像。此图像的调色板由几个在调色板中具有不同编号的类似颜色组成。如何构建一个二维数组,其中x,y处的单元格将是调色板中的一个颜色数?您可以将图像加载到TBitmap中。然后可以使用TBitmap类的ScanLine属性。此索引属性获取行的基于0的索引,并返回指向该行像素值的指针。查看以了解有关扫描线属性的更多信息。tgiImage内置了这样一个数组,因此只需使用它: var Gif:TGifImage; PaletteIndex : byte; begin
x,y
处的单元格将是调色板中的一个颜色数?您可以将图像加载到TBitmap
中。然后可以使用TBitmap
类的ScanLine
属性。此索引属性获取行的基于0的索引,并返回指向该行像素值的指针。查看以了解有关扫描线属性的更多信息。tgiImage内置了这样一个数组,因此只需使用它:
var
Gif:TGifImage;
PaletteIndex : byte;
begin
Gif := TGifImage.Create;
// ... load your stuff here ...
// TGifImage has an Images property, which is probably only interesting if you're dealing with animations, so just take the first image.
PaletteIndex := Gif.Images[0].Pixels[0,0]; // palette index for top-left pixel
// Now, to get the actual TColor for that pixel, you could do this:
Self.color := Gif.Images[0].ColorMap.Colors[PaletteIndex];
end;
直接访问Y-th
Scanline
的X-th元素将为您提供所需的颜色表索引。有人能解释一下为什么这个问题作为非主题被搁置吗?这实际上是一个很好的问题,如果没有被可能连问题都不懂的人阻止,它可能会有一个清晰的答案。其中3个收银员从未发布过任何带有德尔福标签的问题或答案。@TLama:Yay,这个网站上的新收银员系统工作正常!谢谢你的重播,伙计。现在,如果只有那些挥舞着徽章的JQuery大师能够离开我们的Delphi草坪,我们就会有收获:)这不是问题海报的意思。他想知道调色板中的索引,而不是扫描线中的索引。不幸的是,扫描线不能正常工作,但谢谢你的回答!顺便说一句,这可能是一个表达我对安德斯·梅兰德捐赠vcl.Imaging.GIFImg.pas的感谢的好地方