将psd文件转换为svg文件
psd2svg的Python项目详细描述
基于psd-tools和svgwrite的psd到svg转换器。
安装
使用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,并且只有读访问可用。