SVG&WebP

2020-04-03  本文已影响0人  卡路fly

SVG

SVG简介

可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。


SVG格式优点


SVG格式缺点(相较于优点,缺点可忽略不计~)


SVG IN ANDROID

Google在Android 5.X中提供了两个新API来帮助支持SVG:

  • AnimatedVectorDrawable
  • VectorDrawable
    创建基于XML的SVG图形,并结合AnimatedVectorDrawable来实现动画效果

SVG 文件在 Android 中的载体是一个 vector 标签,而绘制图片的工作是在 path 子标签里面做的。

vector

属性 参数类型 默认值 描述
width dimen 必填属性 图形的实际宽度,可在使用时根据需要再次定义
height dimen 必填属性 图形的实际长度,可在使用时根据需要再次定义
viewportHeight float 必填属性 定义画布的尺寸
viewportWidth float 必填属性 定义画布的尺寸

path

属性 参数类型 默认值 描述
pathData String 画图的核心所在,有一定的语法,根据它来绘制目标图形
strokeColor color 透明 画笔的颜色
name String 这一条path的name,在其他地方可以根据name来找到这一条path
strokeWidth float 0.0 画笔的宽度
fillColor color 透明 用颜色填充绘制过的区域,如果图形是闭合的就直接填充,如果图形不是闭合的那么就将图形的起点和终点相连使其闭合然后填充

pathData

属性 操作
M = moveto(M X,Y) 将画笔移动到指定的坐标位置,但未发生绘制
L = lineto(L X,Y) 画直线到指定的坐标位置
H = horizontal lineto(H X) 画水平线到指定的X轴坐标
V = vertical lineto(V Y) 画垂直线到指定的Y轴坐标
C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY) 三次贝塞曲线
S = smooth curveto(S X2,Y2,ENDX,ENDY) 三次贝塞曲线
Q = quadratic Belzier curveto(Q X,Y,ENDX,ENDY) 二次贝塞曲线
T = smooth quadratic Belzier curveto(T ENDX,ENDY) 映射前面路径后的终点
A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y) 弧线
Z = closepath() 关闭路径

SVG

Android vector标签 PathData 画图超详解

inkscape


WebP


WebP 简介

WebP是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8。根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% 的文件大小,即使这些 PNG 文件经过其他压缩工具压缩之后,WebP 还是可以减少 28% 的文件大小。


WebP 优势


WebP 分类


WebP 对比

对比 PNG 原图、PNG 无损压缩、PNG 转 WebP (无损)、PNG 转 WebP (有损)的压缩[效果](https://isparta.github.io/compare- WebP /index.html#12345)可以得出结论:


WebP 工作原理

WebP 工作原理


总结

WebP 作为一种新的图片格式,支持透明度,压缩比比jpg更高但显示效果却不输于jpg,官方评测quality参数为75均衡最佳。
PS:从Android 4.0+开始原生支持,但是不支持包含透明度,直到Android 4.2.1+才支持显示含透明度的 WebP 。如果应用需要兼容Android 2.3,那么需要额外的引入 .so 文件,apk的体积自然也会增加


上一篇 下一篇

猜你喜欢

热点阅读