.net - Image.Horizo​​ntalResolution 和 Image.VerticalResolution - 为什么 float ?

标签 .net image image-processing

这部分是出于好奇,部分是为了能够证明如何在 SQL Server 数据库中存储的决定是合理的:

为什么Image.Horizo​​ntalResolutionImage.VerticalResolution有 float 类型? “无穷大”和“NaN”如何发挥作用?

引用:Image.HorizontalResolution Property

最佳答案

这个问题的实际答案是它是一个 float ,因为美国不使用公制,它以英寸为单位。世界其他地区使用米。一米为 25.4 英寸并不能产生漂亮的整数。图像文件格式使用不同的标准,有点讽刺的是,使用米而不是英寸的最常见图像格式是由一家美国公司创建的。 BMP 文件格式使用每米像素。

技术上更正确的答案也许是,分辨率是用于创建图像的图像传感器的设计参数。物理属性,如 CCD 传感器中的单元间距。并受到用于将场景投影到传感器上的镜头的影响。传感器和镜头都不一定具有每英寸可整除的数量。或每米。芯片烘焙工厂使用以米为单位的特征尺寸。嗯,纳米。而且镜头的焦距通常是可调的,而图像处理器并没有考虑到这一点。

所以实际上是 just a reference number实际选取的值是一个以英寸为单位的整数,与图像中的像素数成正比。它确保您可以在另一台设备(例如打印机)上以大致相同的物理尺寸复制图像。非常常见的值是 72 和 96,这是显示器的默认值(无论显示器尺寸如何),也是使用绘画程序创建图像时获得的值。 300和600是常见的,廉价扫描仪的分辨率。继续根据您花费的金额按比例加倍。

我唯一一次将其视为小数是在一个做作的图像转换程序中,该程序搞砸了米到英寸的转换。截断它而不是舍入它。当您舍入时,将其作为整数存储在数据库中就可以了。它永远不是无穷大或 NaN。

关于.net - Image.Horizo​​ntalResolution 和 Image.VerticalResolution - 为什么 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111822/

相关文章:

c# - 如何以编程方式读取 .pdf 文件并将其转换为音频(.mp3 格式)?

c# - 如何部署引用一个DLL的多个程序?

php - Yii:有什么方法可以以压缩形式保存图像吗?

html - CSS - 在 Wordpress 中并排显示图像

c# - 绑定(bind)到依赖属性,而依赖属性又绑定(bind)到另一个绑定(bind)源

.net - 如何在验证之前访问 NumericUpDown 控件的文本?

android - 图像矩形和屏幕尺寸

python - 是否可以将提取的 'img%d.jpg' 图像从 ffmpeg 传输到另一个软件而不将图像保存在任何地方?

python - 如何使除脸部以外的所有内容都透明

database - 关于维数灾难