如何将图像转换为视网膜显示?

时间:2013-05-09 11:20:55

标签: css retina-display

我有一个40像素×20像素的图像,72像素/英寸。

我想创建一个Retina显示版本。

我该怎么办?尺寸加倍?改变分辨率?

我应该以哪种格式保存它? PNG? JPG? ...

我在网站上使用此图片...

7 个答案:

答案 0 :(得分:8)

在图像编辑器中,将图像尺寸加倍至80像素×40像素。

在标记中将宽度设置为40,将高度设置为20.

<img src="example.png" width="40" height="20" />

如果您需要透明度或图像是艺术线条,则应保存为png。将照片保存为jpg。

答案 1 :(得分:3)

我的回答是将您的图片转换为 SVG

你有Illustrator吗?如果是这样将图像保存为SVG(如果需要,可以使用png作为后备)。

<img src="images/logo.svg" alt="" />
<img src="images/logo.png" alt="" />

只要您使用 Modernzr ,它可以在大多数浏览器中使svg友好。

你可以在这里看到它是如何完成的: http://toddmotto.com/mastering-svg-use-for-a-retina-web-fallbacks-with-png-script/

希望有所帮助:)

答案 2 :(得分:3)

视网膜显示图像(或高密度显示图像)是标准图像像素大小的两倍 - 其缩放系数为2.0。这意味着是的,对于40x20像素的图像,您需要制作一个80x40像素的版本(然后在屏幕上以双像素密度显示)。格式无关紧要,PNG和JPG都可以正常工作(PNG在压缩时不会降低质量,但文件大小会比JPG大。)

然而,高密度显示图像的问题在于它们占用更多带宽,并且对于没有高分辨率或Retina显示器的设备是不必要的。这意味着通过网络传输更多数据,给移动用户和数据传输上限有限的人带来不便。

一种解决方案是使用Retina.js之类的东西。它是一个开源的javascript客户端脚本,它将自动从服务器加载视网膜大小的图像,并为低密度版本(如果存在)就地交换它。它遵循Apple的standard for naming high-resolution images - @2x,因此您可以使用以下HTML代码:

<img src="/images/my_image.jpg" />

,脚本也将在您的服务器中搜索/images/my_image@2x.jpg。如果它存在,它将加载它并就地交换它而不必担心搞乱CSS。

答案 3 :(得分:2)

在撰写本文时,通常有两种类型的视网膜显示,因此您应该为每种类型创建图像。

  • 对于设备,您需要生成两倍逻辑像素的宽度和高度,分辨率为每英寸144像素(72 ppi✕2) 。
  • 对于设备,您需要 3次逻辑像素,分辨率为每英寸216像素(72 ppi✕3)。

2倍设备的示例是MacBook Pro(2012年之后发布的所有型号)和iPhone 4之后的大多数iPhone。 设备是iPhone 6 Plus和iPhoneX。但是 iPhone Xr是2倍设备。

因此,对于您的情况,对于2×和3×设备,分别需要80 px✕40 px和120 px✕60 px的图像。

视网膜显示不依赖于特定的位图图像格式。您可以使用原始图像格式。对于网站,您应该将JPG用于照片,将PNG用于保存为位图的线条艺术。

不应该只是盲目地放大图像,否则会产生模糊的结果–这比没有首先包含任何高分辨率版本的情况要好。获取原始分辨率更高的图像版本(通常从矢量图形源获取)并缩小图像比例,或者使用基于机器学习的图像增强解决方案(例如Bigger Picture)将图像“转换”为更高的分辨率。 / p>

答案 4 :(得分:1)

Photoshop为您提供了几个调整图像大小的选项。例如,如果图像是iPhone大小,您可以将图像大小增加200%。 Photoshop为您提供了几种重新采样图像的选项。双立方,双线性等。这将以更高的分辨率重新制作图像并插入缺失的像素。希望这会有所帮助。

答案 5 :(得分:1)

这是一篇非常有趣的文章,展示了处理高分辨率图像的不错选项:

http://blog.netvlies.nl/design-interactie/retina-revolution/

基本上,它说,如果你使图像非常大(宽度和高度)但是然后以非常低的质量保存它,它仍然在视网膜显示器上非常清晰。这意味着您可以在所有设备上使用同一个图像,并且文件大小也非常低,这是额外的奖励。您可以在CSS和/或HTML中设置图像的宽度和高度,以将其设置为您想要的视觉尺寸。

这篇文章让我感到震惊,是处理视网膜友好和带宽友好图像的首选方法。赢,赢。

答案 6 :(得分:-12)

您可以使用CSS不透明度选项。

这将根据您设置为不透明度的值为您提供图像的透明外观。

尝试学习不透明度:http://www.w3schools.com/css/css_image_transparency.asp