我正在尝试获取有关 PNG 文件的信息,但我还没有找到一个全面的网站来帮助我。
这些是我拥有的一些半有用的代码片段:
Bitmap bmp = new Bitmap(pngFileName);
BitmapData bd = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly,PixelFormat.Format48bppRgb);
和
Stream imageStreamSource = new FileStream(pngFileName, FileMode.Open, FileAccess.Read, FileShare.Read);
var decoder = new PngBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0];
通过这些我已经能够获得图像的高度和宽度。但是我仍然需要发现以下信息:
- 它是 RLE 编码的吗?
- 它是原生视频格式吗?
- 是否旋转?
- 它是否使用灰度调色板?
- 它有透明度吗?
- 是 RGB 还是 BGR?
我非常感谢一些关于如何实现这一点的指示或指向处理此问题的好文章的链接。我们正在使用 .NET 4.0
最佳答案
我不确定这是否对您有帮助,但到目前为止,我所看到的最好的方法是在一个循环中逐个像素地遍历图像并完成您的不同任务。
有关示例,请参阅这些答案:
关于c# - 在 .NET 中提取有关 PNG 的图像信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772879/