2016-07-24 5 views
0

カメラから写真を撮ってアンドロイドにそのサムネイルを表示するアプリケーションを作成したいと思います。私のコードの関連部分は:アンドロイドとkivyでpython PILをインポートするには?

from plyer import camera 
from PIL import Image 
. 
. 
. 
    def take_photo_from_camera(self, x): 
     filename = str(random.randint(0, 100000000000)) # create random filenames 
     self.camera.take_picture("/storage/sdcard0/MyApp/%s.jpg"%(filename), self.on_success_shot) 


    def on_success_shot(self, path): 
     #Create a thumbnail of taken photo here using PIL 

私は問題なくAndroidのカメラを使用できます。 私は

requirements = kivy, openssl, futures, requests, plyer, pyjnius, pillow 

私はこの構成でAPKを作成したい、APKパッケージが正常にビルドしkivyのbuildozer.specファイルの要件にPIL /枕を追加しましたが、私はAPKをインストールしている場合に実行しました私のアンドロイドの電話、私はlogcatでこのエラーが表示されます:

I/python (20188): Traceback (most recent call last): 
I/python (20188): File "/home/mnrl/teknik/.buildozer/android/app/main.py", line 32, in <module> 
I/python (20188): File "/home/mnrl/teknik/.buildozer/android/app/_applibs/PIL/Image.py", line 67, in <module> 
I/python (20188): ImportError: dlopen failed: "/data/data/org.tokerteknik.tokerteknik/files/_applibs/PIL/_imaging.so" is 64-bit instead of 32-bit 
I/python (20188): Python for android ended. 

私はアーキテクチャに関連する問題だと思います。私はubuntu 16.04 64ビットを使用しており、kivy buildozerは要件をインストールする際にpipで64ビットライブラリをインストールします。 同様の問題:https://github.com/kivy/kivy/issues/4095でも解決策はありません。 簡単にどのように私はkivy buildozerでアンドロイド上のPILをインポートできますか、または64ビットシステムにPILの32ビットライブラリをインストールするにはどうすればよいですか?

+0

これはおそらくのpython-ため、アンドロイドのバグです、あなたは[のpython-FOR-アンドロイドgithubのページ](https://github.com/kivy/python-for上の問題を開くことができます-android)、完全なビルドログも報告しますか? – inclement

+0

@inclementはい、私はこのバグをandroid githubページのpythonに報告しました。私はイメージのサイズを変更するためにpilの代わりにpygameを使用するつもりです、それは私のために働く感謝:) – mnrl

答えて

0

PILの代わりにpygameを使用すると、基本的な画像操作プロセスに使用できます。 pygameをbuildozer要件リストに追加すると、問題なく動作します。

import pygame 
picture = pygame.image.load(filepath) 
picture = pygame.transform.scale(picture, (100, 100)) 
pygame.image.save(picture, "scaled_image.png") 
関連する問題