Технические вопросы и ответы QA1654

Доступ к свойствам изображения с ImageIO

Q: Как я могу получить доступ к свойствам изображения, таким как высота изображения и ширина, DPI, данные EXIF, и т.д., изображения?

A: Как я могу получить доступ к свойствам изображения, таким как высота изображения и ширина, DPI, данные EXIF, и т.д., изображения?

Платформа ImageIO, представленная на Mac в Mac OS X 10.4 и на iOS в iOS4, обеспечивает возможности получить доступ к свойствам изображения, таким как размер, DPI, данные EXIF, и т.д. от изображения.

Получить доступ к свойствам изображения Вы:

  1. создайте CGImageSourceRef для своего изображения.

  2. получите копию словаря свойств изображения путем вызова CGImageSourceCopyPropertiesAtIndex.

  3. получите доступ к значениям в словаре путем вызова CFDictionaryGetValue с ключом свойства, которым Вы интересуетесь. Доступные ключи расположены в Ссылке CGImageProperties.

Ниже пример того, как получить доступ к ширине и высоте изображения.

Перечисление 1  , Получающее доступ к ширине изображения и высоте.

CFURLRef url = CFURLCreateFromFileSystemRepresentation (kCFAllocatorDefault, (const UInt8 *)inputFileName, strlen(inputFileName), false);

if (!url) {
   printf ("* * Bad input file path\n"); 
}

CGImageSourceRef myImageSource;

myImageSource = CGImageSourceCreateWithURL(url, NULL);

CFDictionaryRef imagePropertiesDictionary;

imagePropertiesDictionary = CGImageSourceCopyPropertiesAtIndex(myImageSource,0, NULL);

CFNumberRef imageWidth = (CFNumberRef)CFDictionaryGetValue(imagePropertiesDictionary, kCGImagePropertyPixelWidth);
CFNumberRef imageHeight = (CFNumberRef)CFDictionaryGetValue(imagePropertiesDictionary, kCGImagePropertyPixelHeight);

int w = 0;
int h = 0;

CFNumberGetValue(imageWidth, kCFNumberIntType, &w);
CFNumberGetValue(imageHeight, kCFNumberIntType, &h);

CFRelease(imagePropertiesDictionary);
CFRelease(myImageSource);

printf("Image Width: %d\n",w);
printf("Image Height: %d\n",h);

Для получения дополнительной информации об использовании Платформы ImageIO посмотрите Используя Платформу ImageIO.



История версии документа


ДатаПримечания
31.08.2010

Новый документ, описывающий, как использовать платформу ImageIO для доступа к свойствам изображения.