转自:
https://www.aspirantzhang.com/network/png_to_svg.html
本文主要探讨JPG/PNG转SVG矢量格式并支持FILL的方法,介绍在线转换网站和通过illustator转换的经验。
应该说,国内网站很少用到SVG格式,在此之前我只是听过,而没有用过。前些天遇到一个外国网站,在重要的动画位置使用了SVG图片,当我想修改的时候发现里面大有乾坤,分享一下感想和经验。前提我想说,SVG格式适用于如LOGO、图标这类颜色并不多的图,颜色太鲜艳图还是谨慎为好。
注:本文中使用的illustrator版本为Adobe Illustrator CC 2017,其他版本未测试。
初探和原理
右键打开SVG文件一看,<svg>和一堆<path>标签映入眼帘,原理看起来像一张白纸,然后用path来画出路线,用fill属性来填充每个区域的颜色,从而实现矢量缩放。很神奇,关键是大小和颜色可以随便改,用css或者js可以直接控制图形的颜色和大小,这个操作太给力了,在部分场景非常实用。
不过,我随便找了一张png图像,用Photoshop打开,发现也可以到处为svg格式。但是用PS导出的SVG,我看了代码,完全是另一片天地。简单来说就是一个<image>标签里面包着一个base64编码的图片,这样的话我就不能改颜色了呀,这我要你何用!
所以SVG可能有两种形式:
-
真SVG:<svg>+<path>+fill属性的组合
-
假SVG:<image>+base64图片
在线转换 适用于颜色较单一的图片
网络中,大部分JPG/PNG转SVG都转出的是假SVG(这里说的假SVG是我个人意念,非专业术语)。然而如果我们想得到一个真正的矢量svg时,需要得到真SVG编码。我找寻了国外网站,仅找到两个:
http://www.pngtosvg.com/
免费 功能单一 测试过,可以用 颜色选的一个
https://vectormagic.com/
收费还挺贵,功能强大
这里要注意的是,由于SVG是画出来的,颜色越多,代码越多。所以如果颜色较为单一时(如5个颜色以下),用在线转换网站已可以满足要求,但如果渐变图片就头疼了。我找了一张颜色较为单一的google图,和一张有渐变的chrome图做对比。
谷歌图看起来还行,也就是缺了点感觉。chrome就有点惨不忍睹了。
所以真的颜色较多的时候,或者真有个渐变,那么下面介绍的Illustrator可能更好用一点。
使用Adobe Illustrator编辑后导出SVG
首先,只要jpg或者png图片没有太小,比如宽高都大于200px,并且没有阴影等乱七八糟的效果,我认为用Illustrator就可以做出比较好的矢量SVG。操作流程如下:
1. 用Illustrator打开JPG/PNG图片。
2. 点击图片,进入选择状态,上面的工具栏点击“图像描摹”右侧的下拉箭头,选择“高保真度图片”。
这时无敌的illustrator已经把普通jpg/png转换成了矢量图。但还有一个问题,就是仔细观察的话,这个图是有白色背景的。如果你恰好需要这个背景那太好了,否则我们必须把这个背景弄掉。
3. 打开描摹面板。两种方法,第一种,点击工具栏上的按钮。第二种,右上角切换工作台模式。二选一,如图:
4. 展开高级,方法选择第一个“临接(创建木刻路径)”,选项勾选“忽略白色”,看图就明白了:
这时拖到外侧看一下图片背景,没了就对了。如果还有,我没招了。
5. 菜单栏选择文件->导出->导出为…,选择保存路径后,跳出SVG选项卡,样式部分我一般选择内部CSS,其他默认值。 OVER.
转自:https://www.aspirantzhang.com/network/png_to_svg.html本文主要探讨JPG/PNG转SVG矢量格式并支持FILL的方法,介绍在线转换网站和通过illustator转换的经验。应该说,国内网站很少用到SVG格式,在此之前我只是听过,而没有用过。前些天遇到一个外国网站,在重要的动画位置使用了SVG图片,当我想修改的时候发现里面大有乾坤,分享一下感想和经验。前提我想说,SVG格式适用于如LOGO、图标这类颜色并不多的图,颜色太鲜艳图还是谨慎为好。
png
To
Svg
59naga像素到
svg
项目的改编。
当原始文件将
PNG
和JPG图像
转换
为
SVG
路径数据时,此项目通过从
转换
后的数据立即创建
SVG
文件来节省您的时间。 它还通过
svg
o执行开箱即用的
SVG
优化。
SVG
优化
在减小文件大小方面,幼稚的测试运行表明,使用较小调色板的文件可获得最佳结果。 因此,尽管可以将照片图像
转换
为
SVG
,但它们不会真正受益于
svg
o的优化。
没有参数的node ./
png
To
Svg
.js会将所有
PNG
/ JPG文件
转换
为根文件夹中的node ./
png
To
Svg
.js 。 如果提供了目录参数,例如node ./
png
To
Svg
.js home/userFoo/my
PNG
s/ ,则
png
To
Svg
将以非递归方式将所有
PNG
/ JPG文件
转换
为所提供文件夹内的
SVG
。
1,打开Inkscape,点"文件"->"文档属性"->设置高度和宽度大小为48px,然后关闭对话框.
2,"文件"->"导入"->选择你要导入的位图.
3,在Inkscape中选中导入的位图,在上边的工具栏处设置x=0,y=0,以对齐图片.
4,在Inkscape中选中导入的位图,"扩展"->"图像"
本文主要探讨JPG/
PNG
转
SVG
矢量格式并支持FILL的
方法
,介绍
在线
转换
网站
和通过illustator
转换
的经验。
应该说,国内
网站
很少用到
SVG
格式,在此之前我只是听过,而没有用过。前些天遇到一个外国
网站
,在重要的动画位置使用了
SVG
图片,当我想修改的时候发现里面大有乾坤,分享一下感想和经验。前提我想说,
SVG
格式适用于如LOGO、图标这类颜色并不多的图,颜色太鲜艳图还是谨慎为好。
注:本文中使用的
illustrator
版本为Adobe I...
最近需要给项目一些现成的
png
格式小图标换颜色,但是UI小姐姐休假了,不想用ps搞(…),,,就想了个
png
->
svg
,
svg
上传到阿里巴巴矢量库后再进行换色的
方法
。
png
图片
转
svg
真实有效
网站
(找好久…):https://
svg
to
png
.com/zh/
而且这个
网站
访问量还是比较高的,据说已经
转
化了1,092,122,861个文件了,真假不论,百度出来在第一页说明搜索量不小,又找了些其他的,都差不多,有的能
转
,看的还不错,下载下来一看不过是套了个image,而不是真正的path路径,我去,一个能打的都没有
直到我发现了这个
网站
SVG
对于需要可伸缩图形的设计人员非常有用。 您会发现数十种
SVG
工具和程序,可用于从Mac或Windows计算机调整大小和导出
SVG
。
但是,如何在浏览器中编辑
SVG
呢? 只需单击几下,无需软件即可调整和导出
SVG
的大小,这不是很好吗?
这正是myScale的目的,并且可以很好地处理任务。 这个免费的网络应用程序可让您上传任何
SVG
文件 , 输入所需的确切尺寸 ,然后将其导出为P...
async function
svg
2
png
(
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)
svg
2
png
('input.
svg
', 'output.
png
')
此代码将“input.
svg
”文件
转换
为“output.
png
”文件。