AI导出问题:为什么Illustrator导出时会多1个像素?

why illustrator has 1 more pixel 01 - design, sharing - AI导出问题:为什么Illustrator导出时会多1个像素?

今天我们来谈一个Adobe Illustrator的老牌Bug,它从Illustrator最初版诞生之时就存在了,至今还没有被修改。这个Bug是什么?怎么解决?为什么会发生?

1像素Bug

在使用Illustrator进行设计的时候,我们往往制作的是印刷品,采用类似厘米、英寸这样的现实尺寸。但有时候也会将Illustrator用于像素图设计,比如为视频制作静止画面。

举例来说,当我们希望为HDTV标准的视频制作静止画面的时候,需要建立1920×1080像素的画板。当你使用这个尺寸的画板制作完成后,在菜单里点击“文件→导出”,并选中“使用画板”,就可以把它导出为.jpg或.png了,就是这么简单不是吗?

然而,导出结束后你可能会发现,事情有点不太对劲……我们得到的图片出现了多余1个像素长宽,如下图。

extra unwanted pixel2 - design, sharing - AI导出问题:为什么Illustrator导出时会多1个像素?

这就是所谓的“1像素Bug”。

如何解决此Bug

解决方式很简单,你只需要将画板的所在位置改为整数即可。如下图的位置,将X和Y的数值都改为整数,不要让它有小数点。

如图我们画板的纵坐标是297.64px,你只需要将它改为297px并注意修改后画面元素的位置是否正确,然后导出就可以了。

artboar px - design, sharing - AI导出问题:为什么Illustrator导出时会多1个像素?

画板的位置坐标的小数点,它是如何产生的呢?通常有以下几种情况:

  • 画板是通过拖拽建立的。
  • 画板是以厘米(或英寸等)为单位建立的,之后将单位改成了像素。
  • 画板的中心被放在了角落上(注意代表对齐方式的九宫格)。
  • 画板的两个对称的角都被拖拽过来改变尺寸。

在新建多画板的时候,尽量避免随意拖拽产生画板,将画板的位置调整为整数(也就是像素网格上)。

为何产生此Bug

Illustrator是一款矢量软件,画板、线条、曲线等元素,实质上都是通过数学方法控制的。这导致了一个问题:Illustrator的渲染基准该怎么设定?

举例来说,如果画板中心在(0px, 0px)的位置,长宽都是5px,那么理论上左右两侧都是2.5px,那么在右侧第三格上的像素应该怎么渲染呢?这半个像素对于软件来说是理论上无法渲染的,因为像素图里不存在半个像素。而作为矢量软件,Illustrator在放大时,可以通过PPI缩放的方式,将这半个像素渲染为1个像素甚至100个像素。

尽管矢量软件可以渲染半个像素,但导出的时候仍然需要考虑这个问题,此时便引入了一种数学方法:四舍五入。即:当内容超过了0.5px,就渲染为一个像素。

但使用四舍五入需要先确定基准,比如你要对0.6应用四舍五入,那么必须首先知道0.6要和那个数值比较。如果标准在0的位置,0.6当然是要“入”的;但如果标准在0.3的位置,0.6只超过了0.3,还不到0.5,因此要“舍”。

在Illustrator中,这个基准我们称为“像素网格”。它规定了整个可绘图区域的绝对坐标,而所有的画板都会使用这个坐标进行定位。

因此,当画板的坐标不为整数的时候,四舍五入的标准就不再是0。你绘制的画板尺寸是1080px没错,但如果四舍五入的标准是0.7,那么画板左侧就多了0.7px,右侧则少了0.3px。缺少的0.3px不够0.5,不会被“舍”掉,但多出的0.7px超过了0.5,会被“入”。这将直接导致渲染结果为1081px。

目前对于这个问题没有很好的解决办法,因为如果舍弃四舍五入,矢量软件缩放后的渲染效果就会出问题。因此在UI设计等对像素要求非常严格的情况下,如果选用Illustrator,请务必注意操作的规范性,将画板的位置放好,并避免更改文档的单位。

微信打赏支付宝打赏

感谢您的支持!

文章来源:卡米雷特的小站www.kamilet.cn)转载请注明出处。

卡米雷特

视觉控&技术控,不断学习中!

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。