19

EPS または SVG イメージを PIL で開こうとすると、いくつかの問題が発生します。

オープニングEPS

from PIL import Image
test = Image.open('test.eps')

で終わる:

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

また、SVG を開くと で終わりIOError: cannot identify image fileます。

問題は、アプリケーションで両方の形式をサポートする必要があることです。他のフォーマットへの変換は代替手段ではありません。私は Windows 7、Python 2.7.2、および PIL 1.1.7 を使用しています。

EPSSVGの両方の画像をアップロードしました。

4

5 に答える 5

6

PILに代わるものはありますが、PILに代わるものはあなたが望むものではありません-Webブラウザーを開いてそのレンダリングを取得する以外に、ベクターベースの図面を透過的に開き、他の画像と同じように扱うライブラリはありません。 。

SVGを処理するために、カイロを使用したレシピがあります。これは、他の多くの形式も処理できますが、PIL APIよりも処理が少し難しい場合は、カイロもEPSを処理できると思います。したがって、おそらく、最悪の場合、pycairo-またはpycairo+PILを使用するアプリ。

SVGをレンダリングするためのレシピは、次の答えにあります。PythonでSVGをPNGに変換する

(「ファイルをPNGに変換する」必要はないことに注意してください。レシピは、表示、ファイルへの保存などが可能なカイロサーフェスにレンダリングする方法を示しています)

于 2013-03-15T18:01:16.063 に答える
1

それでも、Pillow は EMF (Enhanced Windows Metafile) をサポートしますが、これはまだベクター グラフィックです。とにかくSVGをEMFに変換する便利な手段を探していたので、このスレッドに出くわしました。Inkscape を使用して SVG から EMF を作成することをお勧めします。

inkscape --file image.svg --export-emf image.emf

于 2017-04-25T14:25:43.320 に答える
0

PILはサポートしていませんが、どれをsvg試すことができますか。svglib国連幸いなことに、いいえ活発に開発されているようです:

于 2013-03-15T17:26:23.690 に答える