如何让svg图标始终对齐到像素

为解决图标1x、2x、3x多种尺寸的问题,大家经常会想到svg或者iconfont图标库。这里我们不比较svg与iconfont两种形式的优缺点,单独对svg图标库进行研究,找到它的不足,并给出弥补这种不足的解决方法。

首先明确一下svg图标的优点,这也是我们舍弃传统的位图,使用svg图的原因所在:

?图形自由缩放不发虚

?图形大小可通过CSS自由控制

?图形颜色可通过CSS自由赋予

?图形的不同区域可赋予不同颜色

?同一图形可通过改变大小及颜色用于不同场景

也就是说,只要图形形状没发生变化,那就只需要一个svg图,而不会出现像位图那样即便形状完全一样,只要大小、颜色任意一项发生变化就需要输出一套新图标的情况。举个例子,假设我们已经给开发同学提供了一个加号svg图标,并用于tabbar上,大小为24*24,颜色为#FFFFFF,若有其他情况也需要用到这个加号图标,但大小跟颜色都有所不同时,我们不用再重新切图,只需要将尺寸及色值给到开发同学,开发同学继续调用这个svg图标,并赋予新给出的大小与颜色。这样会大大的降低图标维护成本,提高设计与开发之间的协作便利性。

svg虽说是矢量图形,放大缩小都不会影响图形本身的锐利程度,但受限于屏幕显示机制的原因,如果图形缩放一定倍率后,边缘没有对齐到像素,屏幕显示时还是会模糊、不锐利。其实从本质上说,这并不是svg的原因,因为不管在缩放什么倍率,svg图形本身是不会模糊或者虚化的,只是因为屏幕的显示机制缺陷,才造成了svg图标在一些情况下看起来模糊不清。而我们要做的工作,就是通过控制svg图标的部分特性,来实现对屏幕显示缺陷的规避,进而实现清晰锐利的图标显示效果。

我们发现,svg图标在缩放过程中,有几个关键因素可能会影响到图形的显示效果:图标绘制尺寸L、缩放倍率i、线宽b、绘制时安全区宽度p,如下图

可能有同学会问为什么n.5也能满足,这里补充一下,因为绘制图标时一般使用sketch软件,并将画板设定为x1尺寸,所以当图标线宽或绘制时安全区宽度为n.5时在X2后依然可以得到整数,自然可以保证边缘对齐到像素。但如果是针对web的设计,尽量对齐到整数像素,毕竟高清或retina屏电脑还没有达到手机高清屏的普及程度。

接下来我们通过详细的数据计算、验证,提炼出一些通用规则,方便大家使用。

目的:一套svg图标满足一个产品所有图标需求。

难点:保证放大或缩小后的图标边缘全部对齐到整数或.5个像素。

影响因子:图标绘制尺寸L、缩放倍率i、线宽b、绘制时安全区宽度p。

画板尺寸:375*667、375*812

正文:

图标类型分为线型、面型、线面接合型三种,三种图标影响像素锐度的因子有所不同。

线型影响因子:图标绘制尺寸、缩放倍率、线宽、绘制时安全区宽度;

面型影响因子:图标绘制尺寸、缩放倍率、绘制时安全区宽度;

线面接合型影响因子:图标绘制尺寸、缩放倍率、线宽、绘制时安全区宽度;

其中线型与线面型因为影响因子相同可以归为一类,视为一种。

一、图标绘制尺寸L与缩放倍率i

我们发现,设计时常用图标尺寸一般在12-36px之间。为了方便绘制的时候查看页面效果,我们可以从中选择一个尺寸作为绘制尺寸,然后通过设定缩放倍率来获得其他尺寸的图标。

因为L值只能为偶数,所以可选的L值有12、14、16、18、20、22、24、26、28、30、32、34、36。如果要满足所有缩放后的图标尺寸也是偶数,则需满足图标尺寸是4的倍数,即可选L值为12、16、20、24、28、32、36。

?L=12时

所以,可用icon尺寸为:12、18、24、30、36

?L=16时

7所以,可用icon尺寸为:16、24、32

?L=20时

所以,可用icon尺寸为:20、30

?L=24时

所以,可用icon尺寸为:12、16、24、36

?L=28时

所以,可用icon尺寸为:14、28

?L=32时

所以,可用icon尺寸为:16、32

?L=36时

所以,可用icon尺寸为:12、18、24、36

综上,L=20、28、32时可用尺寸数太少,不宜使用,我们可选的L值为12、16、24、36。其中L=12或16时,最小值即为绘制值;L=24或36时,L为中间值,分别向上递增向下递减速。

L=12时,可用尺寸为:12、18(x1.5)、24(x2)、30(x2.5)、36(x3);

L=16时,可用尺寸为:16、24(x1.5)、32(x2);

L=24时,可用尺寸为:12(x1/2)、16(x1/1.5)、24、36(x1.5);

L=36时,可用尺寸为:12(x1/3)、18(x1/2)、24(x1/1.5)、36

二、绘制时安全区宽度p

图标绘制尺寸L及缩放倍率i确定后,相当于可用图标尺寸已全部确定。这时我们还需要保证图标绘制时安全区宽度p在做相应缩放后为整数或者n.5,且当p=n.5时,缩放倍率i≠n.5,否则会出现.25或者.75的情况,无法对齐到像素。而我们前文也验证了,若不能采用n.5倍率,可用图标尺寸会比较少且图标尺寸跨度比较大,不能满足现实需求。因此,绘制时安全区宽度p≠n.5,p只能取整数。

当L=12或16时,绘制时安全区宽度取1或2时都能满足缩放后对齐到像素或者.5像素;但当p=2时,安全区面积所占比例分别达到了55.56%和43.75%,造成绘制区域过小,不符合要求,所以绘制时安全区宽度p只能取1。

当L=24时,L为中间值;若p=1,则向下计算时,12、16尺寸下绘制时安全区宽度分别为0.5和2/3,无法对齐到像素,不符合要求;若p=2,则向下计算时,16尺寸下绘制时安全区宽度为4/3,无法对齐到像素,不符合要求;若p=3,则向下向上皆可对齐到像素,但是安全区面积所占比例达到了43.75%,造成绘制区域过小,不符合要求。因此L=24时,不能满足设计需求。

当L=36时,L即为最大值;p=1或2时,12、18、24至少同时有2个不能满足对齐到像素;p=3时,12、18、24时安全区宽度分别为1、1.5、2,都能对齐到像素或.5像素。

因此,在满足p值符合要求的前提下,可用绘制尺寸L只能取12、16或36三种,12与16时p值为1,36时p值为3。另外我们也发现,L=12或36时,结果已基本趋同,且L=36的结果被包含于L=12的结果中,所以可选L值可以缩减为两种,分别为12及16。

综上,

L=12时,p=1;

L=16时,p=1。

三、绘制时线宽b

因为缩放倍率i一定会有等于n.5的情况,为保证缩放后线宽都对齐到像素,就要求绘制时线宽b必须像p值一样必须取整数,所以

L=12时,b=1、2、3…

L=16时,b=1、2、3…

四、结论

4.1、若绘制面型图标

L=12时,p=1,i=1.5、2、2.5、3,可选图标大小为:12、18、24、30、36;

L=16时,p=1,i=1.5、2、2.5,可选图标大小为:16、24、32、40;

4.2、若绘制线型图标

L=12时,p=1,b=1、2,i=1.5、2、2.5、3,可选图标大小为:12、18、24、30、36;

L=16时,p=1,b=1、2、3,i=1.5、2、2.5,可选图标大小为:16、24、32、40。

五、延展

是否可以基于2个L值绘制图标?

即我们可以选取12与16,或者16与24两个L值来绘制图标,这种情况下我们只需要保证缩放倍率为整数即可,也可以获得满足设计需要的不同icon尺寸。比如:

L为12与16时,可得图标尺寸12、24、16、32;

L为16与24时,可得16、32、12、24;

但是基于两个L值进行图标绘制时会产生两种尺寸的svg图标,增加维护和使用成本,还容易出现同一图标两种尺寸的情况,造成图标冗余。好处是方便图标绘制,提高图标的绘制便捷性。

L=12与16,或L=16与24时

安全区为1.5时,一则不方便图形绘制,二则16px下安全区为1.5会造成安全区占比过大,故方便起见,在12与16的情况下,安全区都设置为1。

也就是说如果绘制时L值取两个,安全区宽度p的设定可以固化为基于12与16大小情况下都为1,基于24的则为2;而线宽b的值可以根据绘制风格从上方表格中自由选取。

哇哦这个讲的太清楚了最近在看有关像素对齐的知识想到各种情况的适配有点头大看到这个豁然开朗

THE END
1.面条元素主题LOGO设计合集鉴赏!LOGO大师整理编辑(ID:logods)图片来源:网络今天收集了一组 面条元素主题 LOGO设计一起来欣赏! 下期想看什么主题的LOGOPS:留言评论点赞数最高的很有可能成为下期选题! 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。打开https://www.360doc.cn/article/21435004_889708921.html
2.面条元素主题LOGO设计合集鉴赏!面条元素主题LOGO设计合集鉴赏! LOGO大师整理编辑(ID:logods) 图片来源:网络 今天收集了一组面条元素主题LOGO设计 一起来欣赏!http://www.360doc.com/content/20/0204/20/21435004_889708921.shtml
3.面条图标素材面条图标png图片下载觅元素是设计素材的免费下载网站,提供面条图标素材,面条图标png图片等素材免费下载,下载面条图标素材就来觅元素。https://www.51yuansu.com/sopng/miantiaotubiao.html
4.手机通用icon图标面型彩色电脑图片潮国创意提供手机通用icon图标面型彩色电脑图片下载,图片格式Array,图片尺寸750*1083,手机通用icon图标面型彩色电脑图片素材可以用于商业用途,下载潮流创意图片就到潮国创意。https://chaopx.com/detail/T19068630.html
5.毛玻璃app主界面面型面型渐变金刚区图标ui界面设计素材千库网为设计者提供毛玻璃app主界面面型面型渐变金刚区图标UI设计下载,为您省却UI设计搜索时间,UI设计素材下载编号63131。https://588ku.com/uiweb/63131.html
6.清空图标图片免费下载清空图标素材清空图标海报新图网是专注免费商用设计素材下载的网站,提供清空图标,清空图标图片,清空图标素材, 清空图标图标,清空图标海报等免费下载服务!https://ixintu.com/all/qingkongtubiao.html
7.退出图标图片免费下载PNG素材编号vwxipop90图精灵为您提供退出图标免费下载,本设计作品为退出图标,格式为PNG,尺寸为256x256,下载后直接使用,下载退出图标图片素材就到图精灵。https://616pic.com/sucai/vwxipop90.html
8.[服装排版图标]图片免费下载服装排版图标素材千图网为您找到199288张服装排版图标相关素材,千图网还提供服装排版图标图片,服装排版图标素材, 服装排版图标模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://m.58pic.com/tupian/fuzhuangpaibantubiao.html
9.开源图标最新软件图标风格为中性风格,适用于各种用户群体的项目。与拼凑混搭的图标库不同,Remix Icon 的每一枚图标都是由设计师按照统一规范精心绘制的,并确保每一枚图标在拥有完美像素对齐的基础上风格一致且简洁易读。图标以24x24网格为基准,分为“线性图标”和“面型图标”两种风格。所有的图标均可免费用于个人项目和商业项目 使用...https://www.oschina.net/project/rss?tag=223
10.一篇文章,带你看懂功能图标设计!相比于面性图标和扁平图标.线形图标的存在感要弱很多,所以一般线形图标也会出现在需要弱化视觉重心或次要功能的栏目上。面性图标刚好反之。 识别度的角度:面型图标一般来说会比线性图标更快被识别,但也有例外,一些图标在识别效率上没有明显差异,这与图标的特征线索有关。 https://www.niaogebiji.com/article-666120-1.html
11.视频播放图标素材视频播放图标图片熊猫办公为您找到100个视频播放图标素材图片,包括视频播放图标图片,视频播放图标素材,视频播放图标背景,视频播放图标模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等多种格式的素材,更多关于视频播放图标素材、图片、背景、矢量、UI、PS、免抠,艺术字、插画、配图https://www.tukuppt.com/speciall/shipinbftb.html
12.开源图标库RemixIcon–开源派Remix Icon是一套面向设计师和开发者的开源图标库。图标风格定义为中性风格,适用于各种用户群的项目。与拼凑混搭的图标库不同,Remix Icon 的每一枚图标都是由设计师按照统一规范精心绘制的,并确保每一枚图标在拥有完美像素对齐的基础上风格一致且简洁易读。图标以24×24网格为基准,分为“线性图标”和“面型图标”两种...http://osp.io/archives/5886
1.面型图标vs线型图标,哪一种的用户体验会更好?优设网什么时候该用线型图标,什么时候该用面型图标,不知道大家平时有没有去思考过?我自己也曾经纠结过,但却没有深究,这篇文章给出了一些答案。挺意外的,国外设计师会针对线面图标做了深入研究,光 pdf 就有66页,这就是所谓的专业深度吧。 今天一起来学习下,也欢迎大家把自己的想法在留言区一起探讨,说说自己的看法和使...https://www.uisdc.com/solid-vs-outline-icons
2.面图标设计面图标素材面图标图片觅知网为您找到336个原创面图标设计图片,包括面图标图片,面图标素材,面图标海报,面图标背景,面图标模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于面图标素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模板、艺术字、PPT、视频等设计https://www.51miz.com/so-sucai/3165663.html
3.十二星座免扣线性面型元素图标素材icon下载编号27461369十二星座免扣线性面型元素图标素材icon原创其他免抠素材是设计师M19265813127535上传到我图网,本作品为版权图片,图片编号27461369,上传时间为2020-02-15 18:14:50,图片大小为1.37MB,格式为,素材尺寸/像素为-高清品质,颜色模式为,本作品为独家原创素材,下载后在本地用 Illusthttps://weili.ooopic.com/weili_27461369.html
4.底部分页栏底部标签栏二、面型高亮 面型高亮,由于面和面或者线和面差异较大,相较于线性高亮来说识别度更高,表现力更强。用户在使用时更能够快速的清楚自己所在位置,其默认形式可以是线性图标也可以是面型图标。 同时其展示效果可以是纯色,也可以是渐变色等。下面分别来举例说明: ...https://blog.csdn.net/weixin_35824806/article/details/112661716
5.教你5招,轻松打造系统图标规范这里定义系统图标以1倍图为基准,大小24px,线粗细1px,采用1:1的网格来绘制图标(使用面型图标还是线形图标,前面可根据自己产品,品牌去定)。 03 美学统一 图标最关键的在于视觉符号一致性,线条粗细一致,内外倒角一致,图标倾斜角度方向遵循一定的设计规则,使用几何造型并贴紧网格设计,保证在最小尺寸都清晰可见。 https://www.weihaoyi.com/news-details-3179.html
6.设计师必备:图标设计的隐喻元素和绘制流程图标最底层逻辑:线性图标、面型图标、线+面型图标、面+面型图标、2.5D图标、拟物图标。网上五花八门的图标是在这些基础上进行视觉区分,而当我们设计图标时候需要思考: 产品视觉风格定位(行业领域) 图标具体应用的界面 产品面相的用户人群是怎样的? 先看一组不用风格的图标,由上面不同APP图标可以看出不同行业、不同...https://www.hxsd.com/information/29919/
7.如何让图标更具创意?4种优化方法值得一试!这个页面中使用的图标风格不太统一,有些是面型图标,有些是线型图标。 咋处理呢?最好使用统一风格的图标样式,在这里,我们可以对其进行2.5D风处理: 另外,结合一些立方体形状,可以很好地承载图标元素: 以上呢,就是在PPT中,对图标进行创意处理的4种方法,希望对各位有所启发。 https://www.pptfans.cn/700308.html
8.RemixIcon:RemixIcon是一套面向设计师和开发者的开源图标库与拼凑混搭的图标库不同,Remix Icon 的每一枚图标都是由设计师按照统一规范精心绘制的,并确保每一枚图标在拥有完美像素对齐的基础上风格一致且简洁易读。图标以 24x24 网格为基准,分为“线性图标”和“面型图标”两种风格。所有的图标均可免费用于个人项目和商业项目,Enjoy it~...https://gitee.com/mirrors/RemixIcon
9.01课:线性图标与面性图标398次播放 课后作业 3 菜心设计铺 粉丝1829 关注 菜心ui课07期 共28课时 41:37 1. 00-课前动员 菜心设计铺 207次播放 2:05:10 2. 01课:线性图标与面性图标 菜心设计铺 398次播放 1:56:38 3. 02课:线性图标与面型图标点评课 菜心设计铺 https://www.cctalk.com/v/16883011082594
10.RemixIcon免费开源图标库文档介绍Remix Icon是一套面向设计师和开发者的开源图标库。质量很高,风格中性大气,因此适用于很多风格的项目,图标以24×24网格为基准,分为“线性图标”和“面型图标”两种风格。 Remix Icon官网网址:https://remixicon.com/ Remix Icon所有的图标均可免费用于个人项目和商业项目。Remix Icon 使用的是 Apache License Version...https://ipkd.cn/webs_12630.html
11.RemixIcon专为设计师和开发人员创作的开源图标Boss设计RemixIcon一套开源免费的系统符号图标,专为设计师和开发人员精心创作的,所有图标都是免费可商业用途。图标设计者初衷是为了各种行业用户群体都能使用,所以设计风格定义为中性风格,每一枚图标都是经过设计师统一绘制,风格简约大气,简洁易读。 图标以 24x24 网格为基准,分为“线性图标”和“面型图标”两种风格。目前图标...https://www.bossdesign.cn/remixicon/