2020年7月23日木曜日

Ptyhon3で以前のスクリプトを動かす(epsClip)

ドラッグアンドドロップを使った、 こちらで作成したepsファイルの バウンディングボックスを調整するスクリプトをPython3.8で動かしてみた。 新しい環境にGhostScript9.52 をインストールしたが、GhostView は使えなかったのでこちらのスクリプトを 利用する必要があるからである。 Python3.8になったためというより、wxPython や PIL が変更になったためにそのままでは動かなくなったところがある。 環境はWindows10 64bit、python3.8.3、wxPython4.1.0、PIL(pillow)7.1.2である。

まずは、
import Image
でエラーがでる。
これは、このインポートの仕方は廃止されたためで、以前に調べていた。
from PIL import Image
に修正する。

wxPythonでは、wx.EmptyBitmap、wx.EmptyImage、wx.BitmapFromImageが廃止されたようだ。 wx.EmptyBitmap()およびBitmapFromImage()は、どちらもBitmap()に書き換えればよかった。 wx.EmptyImage()は、wx.Image()で書き換える。

wx.Imageの持っていたtostring()メソッドは廃止されたので、tobytes()メソッドに書き換える。

FileDropTargetのOnDropFiles()ハンドラがbool値を返す必要があるようになったので、return True を加える。

文字列のコード変換などで、decode()を用いていたが、そのような必要はなくなった。 文字列は、utf-8となったのでバイト列にするencode()しかない。 また、バイト列には文字列にするためのdecode()メソッドがある。

もともとGUIのみのスクリプトでprintしていないので、print()関数にする修正は不要であった。 これらの修正をすると、問題なくpython3.8で動作した。

0 件のコメント: