我有两张图片:
Name Type Width Height HRes VRes
img01 GIF 256 256 384 96
img02 TIFF 1728 1147 200 100
Windows内部查看器使用不同的模式显示它们:
在看到 img02 行为后,我认为显示的尺寸由下式给出:
Display_Width = max(HRes,VRes) * Width / HRes
Display_Height = max(HRes,VRes) * Height / VRes
但这对 img01 并不好,显示为256x256 !!
如果我使用Image class加载这些图片,则不考虑分辨率,因此水平显示 img02 ,并且尊重格式正确。
如果Windows内部查看器正确显示它们,我认为应该有一些属性来理解是否应该考虑解决方案
使用Image class我有Flags和PropertyItems属性,但我真的不明白它们是否是我要看的那些。
你能教我正确的方法来显示图像(使用Image类)而不会失真吗? 感谢
答案 0 :(得分:1)
GIF文件中的宽高比非常罕见,因为GIF是一种用于存储要在计算机屏幕上显示的图形的格式。实际上,GIF87a文件根本没有宽高比,而GIF89a不存储实际宽高比,而是近似值。
另一方面,TIFF文件大部分由图形设计师,摄影师和出版商使用,因此像素宽高比的概念是格式的核心,因为它允许这些文件在不同的显示媒体之间移动。
我的猜测是大多数GIF解码器忽略了GIF89a格式的宽高比。我想你也应该这样做。