2

に基づいてカスタム画像ピッカーを作成しましたALAssetsLibrary。すべて正常に動作しますがVoiceOver、すべての写真は「ボタン」としてのみ表されます。これは良くないと思います。

そこでPhoto、iOS に組み込まれているアプリを確認したところVoiceOver、各写真について次の情報が表示されました。

  1. photoまたはvideoまたはscreenshotなどです。
  2. portraitまたはですlandscape
  3. それcreation dateの。
  4. sharpまたはですblurry
  5. brightまたはですdark

のプロパティから最初の 3 つを取得できると思います。ALAsset

  1. ALAssetPropertyType
  2. ALAssetPropertyOrientation
  3. ALAssetPropertyDate

しかし、シャープネス明るさはどうですか?イメージ メタデータから取得したり、派生させたりできますか?

アップデート:

写真の EXIF メタデータ:

  1. 明るさはカメラから直接撮影した写真で利用できますが、Web から保存した写真や画面からキャプチャした写真は常に nil 値を返します。
  2. シャープネスはexifで常にnil、ドキュメントから、シャープネス値は「画像に適用されるシャープネス」なので、画像処理アプリ(Apertureなど)で使用されていると思います

しかしPhotos.app、どんな種類の写真でも常に適切な明るさとシャープネスの値を持っています。これを自分で行うことは可能ですか?

4

1 に答える 1

2

EXIFメタデータを使用して値を取得できます。

すべてのキーは、Apple のドキュメントの こちらこちらで参照されています。

ここに例を書きました:

NSDictionary *allMetadata = [[asset defaultRepresentation] metadata];

NSDictionary *exif = [allMetadata objectForKey:(NSString*)kCGImagePropertyExifDictionary];

そして取得するよりsharpnessbrightness

NSNumber *sharpness = [exif objectForKey:(NSString*)kCGImagePropertyExifSharpness];
NSNumber *brightness = [exif objectForKey:(NSString*)kCGImagePropertyExifBrightnessValue];
于 2013-08-24T13:45:00.430 に答える