使用C#和.NET环境获取jpeg图像的分辨率?

时间:2008-09-23 20:59:04

标签: .net jpeg resolution

我们的客户将上传要打印在他们文档上的图像,并且我们被要求想出一种方法来获取图像的分辨率,以便在图像分辨率太低并且看起来很警告它们时发出警告最终产品中的像素化

如果涉及到它,我们也可以使用尺寸,如果有人知道如何获得这些,但决议将是首选

谢谢

4 个答案:

答案 0 :(得分:13)

System.Drawing.Image

Image newImage = Image.FromFile("SampImag.jpg");
newImage.HorizontalResolution

答案 1 :(得分:8)

这取决于你要找的...如果你想要图像的DPI,那么你正在寻找水平分辨率,它是图像的DPI。

Image i = Image.FromFile(@"fileName.jpg");
i.HorizontalResolution;

如果你想弄清楚图像有多大,那么你需要计算图像的测量结果:

int docHeight = (i.Height / i.VerticalResolution);
int docWidth = (i.Width / i.HorizontalResolution);

这将为您提供文档高度和宽度(以英寸为单位),然后您可以将其与所需的最小尺寸进行比较。

答案 2 :(得分:3)

仅在打印时DPI才有意义。 72dpi是Mac标准,96dpi是Windows标准。屏幕分辨率仅考虑像素,因此72dpi 800x600 jpeg与96dpi 800x600像素的屏幕分辨率相同。

回到80年代,Mac使用72dpi的屏幕/打印分辨率来适应屏幕/打印尺寸,因此当您以1:1的比例在屏幕上显示图像时,它对应于打印机上的相同尺寸。 Windows将屏幕分辨率提高到96dpi,以便更好地显示字体..但结果是,屏幕图像不再符合打印尺寸。

因此,对于网络项目,如果图像不是用于打印,请不要理会DPI; 72dpi,96dpi,甚至1200dpi都应该显示相同的内容。

答案 3 :(得分:2)

Image image = Image.FromFile( [file] );
GraphicsUnit unit = GraphicsUnit.Point;
RectangleF rect = image.GetBounds( ref unit );
float hres = image.HorizontalResolution;
float vres = image.VerticalResolution;