2013-08-24 2 views
2

Я написал пользовательский подборщик изображений на основе ALAssetsLibrary, все работает отлично, но VoiceOver, каждая фотография представляет только «кнопку», я думаю, что это нехорошо.Как реализовать доступность фотографий ALAsset на iOS

Так что я проверил Photo приложение, встроенный в IOS, VoiceOver говорил следующую информацию для каждой фотографии:

  1. Это photo или video или screenshot т.д.
  2. Это portrait или landscape.
  3. creation date.
  4. Это sharp или blurry.
  5. Это bright или dark.

Я думаю, что я могу получить первые три из ALAsset «S свойствами, что

  1. ALAssetPropertyType
  2. ALAssetPropertyOrientation
  3. ALAssetPropertyDate

Но как насчет Shar pness и яркость? Могу ли я получить их из изображения Метаданные или получить их?

Update:

В EXIF ​​метаданных Номер фото:

  1. яркость доступна с фотографий, сделанных непосредственно с камеры, но фотографии сохранены из Интернета или захвачены из экрана всегда возвращает ноль значение.
  2. резкости всегда NIL в EXIF, из документа, значение резкости «Резкость применяется к изображению», так что я думаю, что она используется для обработки изображений приложений (таких как Aperture)

Но Photos.app всегда имеют правильную яркость и резкость для любых фотографий, можно ли это сделать сами?

ответ

2

Вы можете получить значения, используя EXIF метаданные.

Все ключи refferenced в Документах компании Applehere и here

Здесь я написал пример:

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

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

и чем получить sharpness и brightness

NSNumber *sharpness = [exif objectForKey:(NSString*)kCGImagePropertyExifSharpness]; 
NSNumber *brightness = [exif objectForKey:(NSString*)kCGImagePropertyExifBrightnessValue]; 
+0

Я нашел две проблемы , 1.яркость доступна с фотографиями, снятыми непосредственно с камеры, но фотографии, сохраненные в Интернете или захваченные с экрана, всегда возвращают значение nil. 2. Резкость всегда равна нулю в exif, из документа значение резкости - «Резкость, применяемая к изображению», поэтому я думаю, что он используется приложением для обработки изображений (например, Aperture)? эти две проблемы не встречаются в Photos.app. – naituw

+0

И не забудьте добавить '#import ' –

Смежные вопросы