我有一个将处理大量图像的.net 3.5应用程序。我需要检查图像扩展是否正确,图像的高度和宽度以及PPI。我不想将整个图像加载到.net图像或位图中,这会花费很长时间并且会占用大量资源。我不能使用第三方插件或dll,当然它需要在昨天完成。在不加载整个图像的情况下读取图像标题信息
因此,我正在读取文件的初始字节,检查“魔术”数字以确保图像扩展匹配,然后查看大部分图像类型的高度和宽度。这是更快,更少资源密集型。我可以使用一些帮助从一些图像类型中读取PPI,其中两种类型已经超出了我对验证扩展的影响。
BMP,JPG,GIF和PNG我需要帮助阅读PPI。
- 寻找像位于偏移量xx处的东西。
TIF,EPS和PSD我需要帮助阅读高度,宽度和PPI。
我几乎停留在Eps和Psd文件上,任何事情都会有所帮助。
是的,我知道tiflib,它看起来不错,而且比我需要的方式。只处理高度,宽度和PPI的打火机版本会很棒。如果非要我能做到这一点,但我希望所有的人都有准备:-)
要确定PPI,它不会那么容易,因为 “偏移XX” 的所有格式。例如,PNG像素尺寸是可选的(http://www.libpng.org/pub/png/book/chapter11.html#png.ch11.div.8),并且位于块中以及其他块中。你必须阅读块,直到你发现pHY(如果存在)。其他格式甚至不存储像素尺寸,或像素尺寸可能不正确(但未被应用程序使用,因此它仍然有效)。 –
PPI也依赖于输出显示。使用PPI的文件格式通常用于参考原始输出设备。 –
EPS和PSD是复合存储文件。您将无法在特定的偏移量找到您要查找的内容。包含的每个图像可以是位图或矢量图形。这两种文件类型都可能有大量的图像。 –