代码地址
https://github.com/ianmackinnon/png2svg.git
运行png2svg.py 文件:
$./png2svg.py a.png > a-v.png
报下面错误
$ ./png2svg.py
Traceback (most recent call last):
File "./png2svg.py", line 11, in <module>
import Image
ImportError: No module named Image
$pip install pillow
重新运行上面命令,生成b.svg
使用android stdio, new ->Vector Asset ,成功添加vector svg文件。
使用SVG-Android 插件可以批量生成
代码地址https://github.com/ianmackinnon/png2svg.git运行png2svg.py 文件:$./png2svg.py a.png > a-v.png报下面错误$ ./png2svg.py Traceback (most recent call last): File "./png2svg.py", line 11, in <module> import ImageImportError: No module named Ima
文章目录前置知识
PNG格式zlib文件格式deflate文件格式LZ77压缩算法霍夫曼编码字典树综述过程获取文件信息获取调色板信息对IDAT数据块进行解码编写位处理工具解码zlib和Defalte格式的文件头构建霍夫曼树获取霍夫曼码表进行解码格式
转换实验结果完整代码
PNG格式
zlib文件格式
deflate文件格式
LZ77压缩算法
霍夫曼编码
Vector Drawable相对于普通的Drawable来说,有以下几个好处:
Vector图像可以自动进行适配,不需要通过分辨率来设置不同的图片
Vector图像可以大幅减少图像的体积,同样一张图,用Vector来实现,可能只有PNG的几十分之一
使用简单,很多设计工具,都可以直接导出SVG图像,从而转换成Vector图像
功能强大,不用写很多代码就可以实现非常复杂的动画
成熟、稳定,前端已经非
将适合
转换成矢量图的
图片,批量处理,
转换成适合安卓项目使用的
vector标签的xml。
适合
转成矢量图的图,一般为本地加载的图标,
图片色彩和形状简单有规律。复杂的
图片是不适合
转换成矢量图的,即使
转换过来,可能也严重失真,且造成
转换的矢量图path信息大的问题。
批量
转换
图片格式
第一步先统一
图片格式,将项目中jpg webp
png等
图片全部
转换成
png图片,
png图片有透明度信息。
推荐
转换工具XnConvert
矢量图能不受显示范围大小的限制且不失真,不需要放多套
PNG图片来做适配,能随意自己更改矢量图的大小而不再需要去求同事给新切图。
而我目前所在的公司出图放在蓝湖上,能选择下载
PNG或
SVG格式的
图片。
项目中有个类似于电影院选座一样的控件,每个小框内有个
图片,能放大,放大后普通的小
PNG图片会失真,很丑。
1、下载得到
SVG图片。
2、
Android Studio(开发工具)中在draw...
在Android开发中,搞过UI设计的人都知道,经常会为了适应不同的屏幕分辨率而制作大量的图片,如果有一个靠谱负责的美工还好,否则真的很痛苦,经过这么久的学习,踩坑无数,练成了终极大法,遂昭告天下。
首先,总结一下现成的几个不错的Android图片素材库(从知乎大佬那里copy过来的):
1.阿里公开库
http://www.iconfont.cn/collections?spm=a313x
async function svg2png(svg, png) {
const image = await loadImage(svg)
const canvas = createCanvas(image.width, image.height)
const ctx = canvas.getContext('2d')
ctx.drawImage(image, 0, 0)
const buffer = canvas.toBuffer()
fs.writeFileSync(png, buffer)
svg2png('input.svg', 'output.png')
此代码将“input.svg”文件转换为“output.png”文件。