将psd文件转换为svg文件

psd2svg的Python项目详细描述


基于psd-toolssvgwrite的psd到svg转换器。

PyPI VersionBuild Status

安装

使用pip安装:

pip install psd2svg

用法

该软件包附带一个命令行工具:

psd2svg input.psd output.svg

当输出路径是目录或省略时,工具将推断输出 输入的名称:

psd2svg input.psd output/  # => output/input.svg
psd2svg input.psd          # => input.svg

指定--resource-path标志时,将导出所有PNG资源 到由--resource-path

指定的路径
psd2svg input.psd output.svg --resource-path .
# => output.svg, xxx1.png, ...

psd2svg input.psd output/ --resource-path .
# => output/input.svg, output/xxx1.png, ...

psd2svg input.psd output/ --resource-path=resources/
# => output/input.svg, output/resources/xxx1.png, ...

psd2svg input.psd svg/ --resource-path=../png/
# => svg/input.svg, png/xxx1.png, ...

API

该包包含高级转换函数psd2svg

frompsd2svgimportpsd2svg# File IO.psd2svg('path/to/input.psd','path/to/output/')# Stream IO.withopen('input.psd','rb')asfi:withopen('output.svg','w')asfo:psd2svg(fi,fo)# psd_tools IO.frompsd_toolsimportPSDImagepsd=PSDImage.load('path/to/input.psd')svg=psd2svg(psd)print(svg)# Additionally, individual layers can be directly rendered.layer_svg=psd2svg(psd[3])print(layer_svg)

该软件包还具有光栅化器模块,可将SVG转换为PIL图像:

frompsd2svg.rasterizerimportcreate_rasterizerrasterizer=create_rasterizer()image=rasterizer.rasterize(svg)image.save('path/to/output.png')

光栅化器需要硒+铬驱动,阿帕奇蜡染,或 墨景。一定要事先安装好。

测试

调用tox:

tox

存储后端支持

要使用AWS S3存储后端:

pip install psd2svg[s3]

或:

pip install boto3

工具可以指定url而不是文件路径(s3需要boto3):

psd2svg http://example.com/input.psd
psd2svg s3://bucketname/path/to/input.psd s3://bucketname/path/to/output/

要使用HDFS存储后端:

pip install psd2svg[hdfs,kerberos]

注释

  • SVG 1.1不包括Photoshop中的所有混合模式(例如, linear-dodge
  • 滤波效果近似。一些效果没有实现。
  • 大多数调整层没有实现。
  • 未实现智能对象筛选器。
  • 浏览器支持:SVG渲染质量因 浏览器。铬往往是最好的质量。
  • 此工具的API不是线程安全的。
  • 要使用hdfs存储后端,需要python 2.7环境 并且应该启用kerberos,并且只有读访问可用。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java 401在API URL上带有声明性Http客户端,并带有@Secured(SecurityRule.IS_ANONYMOUS)注释   java如何在Android中创建计时器?   Java8WebStart安全弹出窗口   java会通过以下两种方式导致堆空间耗尽吗?   java项目调度GA:染色体的高效数据结构   java Apache POI:如何在Excel文件中插入列   java在JRE系统库中每个jar扮演什么角色   java如何在抽象类中执行@mock(不是注入mock)   java如何使用opensearch和Lucene发送搜索查询?   java在ApachePOI中处理空列   java广播接收器未接收到目标   java错误ELF类:ELF类64(可能原因:体系结构字宽不匹配)   java调用Web服务(SSL)时出错   用于iot集线器设备固件更新的java Rest API   通过xslt将xml转换为文本文件时引发java异常   Java linux打印问题   Java XML转换器重复行   java从另一个类的方法将数组导入mainActivity类   多线程选择与Java交互的线程   我想在java程序中打印以下格式的文件: