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


6

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

如果说到它,我们也可以用维度去,如果有人知道如何得到这些,但分辨率将是首选

谢谢

13

System.Drawing.Image

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

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

8

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

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

如果你想找出图像有多大,那么你需要计算它是图像的测量:

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

这会给你以英寸为单位的文件的高度和宽度那么你可以比较所需的最小尺寸。

  0

+1。布莱恩,你从几个小时的研究中拯救了我,伟大的洞察力! 13 5月. 102010-05-13 21:41:14


3

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

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

因此,对于web项目,如果图像不适合打印,请不要打扰DPI; 72dpi,96dpi,甚至1200dpi应显示相同。