PNG(或JPG)有DPI吗?或者在建造视网膜时无关紧要?

gba*_*nks 12 html photoshop png retina-display responsive-design

一个简单的问题,我一直很难找到一个明确的答案:PNG文件有DPI吗?或者更重要的是,在构建支持视网膜的网站/应用时,它是否甚至相关?

我刚收到设计师提供的PSD资产用于视网膜iPad应用程序,我必须将其转换为HTML以便在应用程序中显示.通常情况下,我会收到2048x1536 @ 72 DPI等文件 - 双倍尺寸但标准屏幕DPI.然后我通常使用CSS告诉浏览器如何显示它.

但这次设计师被指示以1024x768 @ 144 DPI(标准尺寸但双DPI)提供他的PSD.我认为这是不正确的,因为Photoshop中的DPI设置是用于打印目的.另外,当我将144 DPI PSD中的某些内容保存为PNG或JPG时,它与从72 DPI(或30,000 DPI)PSD保存的内容完全相同.DPI似乎没有反映在我可以在结果文件中看到的任何设置中,也不会反映在不同的文件大小中.看来,充其量只是元数据.

因此,我的理解是DPI在这里并不重要,我们应该只是为视网膜项目寻求双倍大小的资产,但我想在询问新资产之前对这个问题进行一些确认/澄清.我与许多正在从印刷背景过渡的设计师合作,所以这是我遇到的一个常见问题,我希望能够在将来为我们的要求提供更好的指导.

Gle*_*son 13

PNG确实能够在PNG"pHYs"块中分别为X和Y方向存储像素/米.不幸的是,这不允许精确转换(72 dpi是每米2834.64566929像素,存储为2835像素/米,当转换回DPI时变为72.009); 有些人觉得这很令人不安.

JPEG还可以存储X_density和Y_density,单位为像素/英寸或像素/厘米.


Wyz*_*a-- 11

DPI是图像的像素尺寸与显示时(或应该出现)的物理尺寸之间的关系,无论其显示方式如何(屏幕,打印等).没有图像格式固有地具有DPI,但是由像素构成并且应该以特定物理尺寸出现的任何实际图像具有DPI.

你是对的,就图像文件而言,DPI只是元数据.图像本身是像素网格,没有固有的物理尺寸,但DPI​​值表示预期的物理尺寸.例如,144英寸宽,DPI为144的图像在显示时应显示为1英寸宽,但显示为DPI为72的144像素宽的图像应显示为2英寸宽.

存储在图像中的DPI值可用于在DPI也已知的设备上显示时自动将其缩放到正确的物理尺寸.例如,72dpi监视器上显示的144dpi图像应在每个维度上缩放50%,以便将144像素(1英寸)的图像映射到72像素(1英寸)的监视器表面.但是,Web浏览器通常不会这样做; 图像像素只是直接映射到屏幕像素,因此您必须手动缩放图像,使其具有适合显示器的像素尺寸.

您提到在2048x1536 @ 72 DPI和1024x768 @ 144 DPI下获取图像,但这些图像并不完全相同.2048x1536 72DPI图像应出现约28.4英寸宽(2048/72),但1024x768 144DPI图像应出现约7.1英寸宽(1024/144).你确定你不是指2048x1536 @ 144DPI和1024x768 @ 72DPI(两者都是14.2英寸宽)?

BTW,传统(非视网膜)监视器这些天通常是96到100 DPI,而不是72.例如,我的20英寸Dell 2007WFP像素尺寸为1680x1050.这是对角线上的大约1981像素,大约是每英寸99像素.CSS中的"px"单元实际上定义为1/96英寸,这可能对应于高DPI屏幕上的多个物理像素.

  • 这是一个有用的答案,但是这可能会误导您:“当图像显示在DPI已知的设备上时,可以使用存储在图像中的DPI值自动将其缩放到正确的物理大小。” 至少在Mac(2014 MBP和2017 iMac)上,显示72dpi(元数据)的PNG和使用300dpi(元数据)的预览显示的PNG大小完全相同。在GIMP中打开时相同。我想不出任何将DPI解释为屏幕显示指示的应用程序。从预览打印时,预览大小当然会以不同的方式显示。 (2认同)
  • *可以*使用,不一定*被*使用。即使许多/大多数应用程序不使用它,使之成为可能的信息就在那里。(尽管您提到的打印和打印预览只是其中的一个示例 - “在设备上显示”包括打印到纸张上。) (2认同)