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

 普林 发布于 2022-12-07 15:37

一个简单的问题,我一直很难找到一个明确的答案: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在这里并不重要,我们应该只是为视网膜项目寻求双倍大小的资产,但我想在询问新资产之前对这个问题进行一些确认/澄清.我与许多正在从印刷背景过渡的设计师合作,所以这是我遇到的一个常见问题,我希望能够在将来为我们的要求提供更好的指导.

2 个回答
  • 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屏幕上的多个物理像素.

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

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

    2022-12-11 03:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有