5

Google アプリ エンジンの開発環境では、exif データを取得できません。ここからガイドに従いました https://developers.google.com/appengine/docs/python/images/imageclass

私はコードで次のことを行いました

def getResizedImage(self, image, imagemaxWidth, imagemaxHeight):
    img = images.Image(image_data=image)
    logging.error(img.get_original_metadata())

私はなししか得られません。img.resize などを実行できるので、img オブジェクトは問題ありません。Exif 情報を取得する必要があります。

更新:これを行うことで、メタデータを取得できました。

def getResizedImage(self, image, imagemaxWidth, imagemaxHeight):
    img = images.Image(image_data=image)
    img.rotate(0)
    img.execute_transforms()
    logging.error(img.get_original_metadata())

ドキュメントで説明されているように、私は非常に「限定された」セットをより正確に取得しました

{u'ImageLength': 480, u'ImageWidth': 640}

どうやら、実際の環境でははるかに大きなセットを取得しているようですが、これが開発環境の機能ではない理由はわかりません。それはかなりイライラします。pyexiv2 レベルの exif を取得できる限り問題ありませんが、PIL を使用しているだけでは十分ではありません。現在、PIL は、exif 情報をほとんど提供していません。

4

2 に答える 2

3

開発環境は、表示内容を説明する PIL を使用します。本番環境は PIL を使用せず、イメージ内にあるタグの大部分を提供します。

于 2012-06-27T10:10:10.553 に答える
0

のドキュメントから取得get_original_metadata

戻り値:
  文字列キーによる辞書。execute_transform が parse_metadata で呼び出された場合
  True の場合、この辞書にはさまざまなプロパティに関する情報が含まれています
  寸法、カラー プロファイル、プロパティなど、元の画像の
  EXIFから。
  parse_metadata が False だったり、画像にメタデータがない場合でも、
  ディクショナリには、少なくとも限定されたメタデータのセットが含まれます
  'ImageWidth' と 'ImageLength' は、
  元の画像。
  成功する前に呼び出された場合、None を返します。
  execute_transfrom.

exifデータを含むより多くのメタデータを取得するためにparse_metadata=Trueに渡したいです。execute_transform

また、返品に関する一番下のメモでは、返品するために電話しNoneなければならなかった理由を説明していますexecute_transforms

于 2013-02-26T12:32:23.130 に答える