flo*_*qqi 11 python svg vector-graphics eps python-imaging-library
当我尝试使用PIL打开EPS或SVG图像时,我遇到了几个问题.
打开EPS
from PIL import Image
test = Image.open('test.eps')
Run Code Online (Sandbox Code Playgroud)
结束于:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\Lib\site-packages\PIL\Image.py", line 1965, in open
return factory(fp, filename)
File "C:\Python27\Lib\site-packages\PIL\ImageFile.py", line 91, in __init__
self._open()
File "C:\Python27\Lib\site-packages\PIL\EpsImagePlugin.py", line 206, in _open
raise IOError, "bad EPS header"
IOError: bad EPS header
Run Code Online (Sandbox Code Playgroud)
打开SVG结束IOError: cannot identify image file.
问题是我必须在我的应用程序中支持这两种格式.转换为其他格式是别无选择.我使用的是Windows 7,Python 2.7.2和PIL 1.1.7.
截至今天,也就是2017年7月,阅读和转换SVG文件可以很容易地通过导入完成cairosvg提供的svg2png功能。
此外,svglib 的开发又开始了,因此通过导入 svglib 和reportlab,从 svg 到 png 的转换也应该很容易。2个电话的问题。
有 PIL 的替代品,但 PIL 的替代品不是你想要的 - 我知道没有任何库可以透明地打开基于矢量的绘图并将其视为任何其他图像,而无需打开 Web 浏览器并获取其渲染.
对于处理 SVG,有一个使用 Cairo 的方法 - 它也可以处理很多其他格式,如果比 PIL API 更难处理 - 我认为 Cairo 也可以处理 EPS - 所以,你可以开发你的带有 pycairo 的应用程序 - 或者在最坏的情况下使用 pycairo + PIL。
渲染 SVG 的秘诀在答案中:Convert SVG to PNG in Python
(请注意,您不必“将文件转换为 PNG”——recibe 显示了您如何渲染到开罗表面,可以显示、保存到文件等)
| 归档时间: |
|
| 查看次数: |
20413 次 |
| 最近记录: |