Pentanium Reactor Blog

ゲーム、アニメ、CG、プログラミング

PyObjCでCoreGraphics

2011年07月18日 22時53分40秒 | プログラミング
オレオレメモ。

さて、当然ながらPyObjCでCoreGraphicsを使う場合にはimportする必要があるわけです。
しかし
from CoreGraphics import *

とやると、64bitバージョンの_CoreGraphics.soが無いから32bitで起動してね。詳細はmanで。などと言われてしまいます。
なんだそりゃ、と思いますが、実はPyObjCではQuartzというパッケージがあって、64bit対応のCoreGraphicsはちゃんとそこにあります。
なので、

from Quartz import *
# もしくは
from Quartz.CoreGraphics import *

とすれば大丈夫。
ちなみに最初に使おうとしたCoreGraphicsは、ずっと昔にApple自らがCoreraphicsのPythonバインディングを作った名残。
若干不完全なCoreGraphicsに、画像の読み書きなどのユーティリティ的なメソッドを追加したものでした。
しかし10.6でOSが64bitになったにもかかわらず、アップルお得意の飽きっぽさを発揮して更新されることなく絶賛放置で風化待ち。
ファイル名から一発でCGImageを取得できるメソッドなど少し便利なものもありましたが、AppKitを併用すればファイルの読み書きも楽勝なので、いまさらそちらを使うメリットもないでしょう。
そのうち昔のCoreGraphicsは消えるんだろうね。
中途半端なことするなよアップル...