2016-05-12 6 views
-1

PythonとCをctypeで統合する際に問題があります。Pythonを使ってMagickWandメソッドで画像に透かしを入れようとしています

問題はMagicSteganoImageメソッドにあり、このメソッドは0を返します。したがって、最終結果を書き込むことはできません。

誰か手伝ってください。ありがとうございます。

path="path/photo.png" 
markpath="path/mark.png" 
libwand=CDLL("libMagickWand-6.Q16.so.2") 
libwand.MagickWandGenesis() 
mw=libwand.NewMagickWand() 
libwand.MagickReadImage(mw,path) 
mark=libwand.NewMagickWand() 
libwand.MagickReadImage(mark,markpath) 
result=libwand.NewMagickWand() 
result = libwand.MagickSteganoImage(mw,mark,0) 
libwand.MagickWriteImage(result,dest) 

答えて

2

あなた CのAPIと対話する方法のpythonを伝える必要があります。

from ctypes import * 
libwand=CDLL("libMagickWand-6.Q16.so.2") 
# Communicated how python should handle ctypes 
libwand.NewMagickWand.restype = c_void_p 
libwand.MagickReadImage.argtypes = (c_void_p, c_char_p) 
libwand.MagickSteganoImage.argtypes = (c_void_p, c_void_p, c_int) 
libwand.MagickSteganoImage.restype = c_void_p 
libwand.MagickWriteImage.argtypes = (c_void_p, c_char_p) 
# ... work 

C-API例外と対話するためのエラー処理を構築するだけでなく、

source codeと評価されます。

関連する問題