iOS中ImageIO框架详解与应用分析(三)

简介: iOS中ImageIO框架详解与应用分析

五、CGImageProperties中定义的字典意义


   前面提到的CGImageSourceCopyProperties方法与CGImageSourceCopyPropertiesAtIndex方法都会返回一个字典,字典中可能包含如下有意义的键:


//TIFF信息字典

const CFStringRef kCGImagePropertyTIFFDictionary;

/GIF信息字典

const CFStringRef kCGImagePropertyGIFDictionary;

//JFIF信息字典

const CFStringRef kCGImagePropertyJFIFDictionary;

//EXif信息字典

const CFStringRef kCGImagePropertyExifDictionary;

//PNG信息字典

const CFStringRef kCGImagePropertyPNGDictionary;

//IPTC信息字典

const CFStringRef kCGImagePropertyIPTCDictionary;

//GPS信息字典

const CFStringRef kCGImagePropertyGPSDictionary;

//原始信息字典

const CFStringRef kCGImagePropertyRawDictionary;

//CIFF信息字典

const CFStringRef kCGImagePropertyCIFFDictionary;

//佳能相机信息字典

const CFStringRef kCGImagePropertyMakerCanonDictionary;

//尼康相机信息字典

const CFStringRef kCGImagePropertyMakerNikonDictionary;

//柯尼卡相机信息字典

const CFStringRef kCGImagePropertyMakerMinoltaDictionary;

//富士相机信息字典

const CFStringRef kCGImagePropertyMakerFujiDictionary;

//奥林巴斯相机信息字典

const CFStringRef kCGImagePropertyMakerOlympusDictionary;

//宾得相机信息字典

const CFStringRef kCGImagePropertyMakerPentaxDictionary;

//对应Photoshop相片的信息字典

const CFStringRef kCGImageProperty8BIMDictionary;

//NDG信息字典

const CFStringRef kCGImagePropertyDNGDictionary ;

//ExifAux信息字典

const CFStringRef kCGImagePropertyExifAuxDictionary;

//OpenEXR信息字典

const CFStringRef kCGImagePropertyOpenEXRDictionary;

//Apple相机信息字典

const CFStringRef kCGImagePropertyMakerAppleDictionary ;

CGImageSourceCopyProperties方法返回的字典中还可能会有如下一个特殊的键:


//对应文件大小

const CFStringRef kCGImagePropertyFileSize;

CGImageSourceCopyPropertiesAtIndex方法中可能包含的特殊键:


//像素高度

const CFStringRef kCGImagePropertyPixelHeight;

//像素宽度

const CFStringRef kCGImagePropertyPixelWidth;

//DPI高度

const CFStringRef kCGImagePropertyDPIHeight;

//DPI宽度

const CFStringRef kCGImagePropertyDPIWidth;

//颜色位数

const CFStringRef kCGImagePropertyDepth;

//图片的显示方向

/*

对应Number值

*   1  =  左上到右下.  

*   2  =  右上到左下.  

*   3  =  右下到左上.

*   4  =  左下到右上.  

*   5  =  行列置换 左上到右下.  

*   6  =  行列置换 右上到左下.  

*   7  =  行列置换 右下到左上.  

*   8  =  行列置换 左下到右上.

*/

const CFStringRef kCGImagePropertyOrientation;

//颜色是否支持浮点数

const CFStringRef kCGImagePropertyIsFloat;

//图像是否包含像素样本

const CFStringRef kCGImagePropertyIsIndexed;

//图像是否包含alpha通道

const CFStringRef kCGImagePropertyHasAlpha;

//图像的颜色模式

const CFStringRef kCGImagePropertyColorModel;

//嵌入图片的ICC配置文件名称

const CFStringRef kCGImagePropertyProfileName;

kCGImagePropertyColorModel键可返回的值有如下几种定义:


//RBG模式

const CFStringRef kCGImagePropertyColorModelRGB;

//Gray模式

const CFStringRef kCGImagePropertyColorModelGray;

//CMYK模式

const CFStringRef kCGImagePropertyColorModelCMYK;

//Lab模式

const CFStringRef kCGImagePropertyColorModelLab;

kCGImagePropertyTIFFDictionary键可返回的值定义如下:


//图片数据压缩方案

const CFStringRef kCGImagePropertyTIFFCompression;

//图片数据的色彩空间

const CFStringRef kCGImagePropertyTIFFPhotometricInterpretation;

//文档名称

const CFStringRef kCGImagePropertyTIFFDocumentName;

//图片描述

const CFStringRef kCGImagePropertyTIFFImageDescription;

//相机设备名

const CFStringRef kCGImagePropertyTIFFMake;

//相机设备模式

const CFStringRef kCGImagePropertyTIFFModel;

//图片方向

const CFStringRef kCGImagePropertyTIFFOrientation;

//横向每个分辨位的像素数

const CFStringRef kCGImagePropertyTIFFXResolution;

//纵向每个分辨位的像素数

const CFStringRef kCGImagePropertyTIFFYResolution;

//分辨率单位

const CFStringRef kCGImagePropertyTIFFResolutionUnit;

//创建图像的软件名称和版本

const CFStringRef kCGImagePropertyTIFFSoftware;

//transform函数

const CFStringRef kCGImagePropertyTIFFTransferFunction;

//日期时间

const CFStringRef kCGImagePropertyTIFFDateTime;

//作者

const CFStringRef kCGImagePropertyTIFFArtist;

//创建图片的电脑系统

const CFStringRef kCGImagePropertyTIFFHostComputer;

//公司信息

const CFStringRef kCGImagePropertyTIFFCopyright;

//图片的白点

const CFStringRef kCGImagePropertyTIFFWhitePoint;

//图像的原色色度

const CFStringRef kCGImagePropertyTIFFPrimaryChromaticities;

//图片的瓦片宽度

const CFStringRef kCGImagePropertyTIFFTileWidth;

//图片的瓦片高度

const CFStringRef kCGImagePropertyTIFFTileLength;

kCGImagePropertyJFIFDictionary对应的字典中可能包含如下意义的键:


//JFIF版本

const CFStringRef kCGImagePropertyJFIFVersion;

//横向像素密度

const CFStringRef kCGImagePropertyJFIFXDensity;

//纵向像素密度

const CFStringRef kCGImagePropertyJFIFYDensity;

//像素密度单元

const CFStringRef kCGImagePropertyJFIFDensityUnit;

//是否是高质量图像版本

const CFStringRef kCGImagePropertyJFIFIsProgressive;

kCGImagePropertyExifDictionary对应的字典中可能包含如下意义的键 :


//曝光时间

const CFStringRef kCGImagePropertyExifExposureTime;

//ExifNumber

const CFStringRef kCGImagePropertyExifFNumber;

//曝光程序

const CFStringRef kCGImagePropertyExifExposureProgram;

//每个通道的光谱灵敏度

const CFStringRef kCGImagePropertyExifSpectralSensitivity;

//ISO速度等级

const CFStringRef kCGImagePropertyExifISOSpeedRatings;

//ExifOECF

const CFStringRef kCGImagePropertyExifOECF;

//灵敏类型

const CFStringRef kCGImagePropertyExifSensitivityType;

//输出灵敏标准

const CFStringRef kCGImagePropertyExifStandardOutputSensitivity;

//推荐曝光指数

const CFStringRef kCGImagePropertyExifRecommendedExposureIndex;

//ISO速率

const CFStringRef kCGImagePropertyExifISOSpeed;

const CFStringRef kCGImagePropertyExifISOSpeedLatitudeyyy;

const CFStringRef kCGImagePropertyExifISOSpeedLatitudezzz;

//Exif版本

const CFStringRef kCGImagePropertyExifVersion;

//原始日期时间

const CFStringRef kCGImagePropertyExifDateTimeOriginal;

//数字化日期时间

const CFStringRef kCGImagePropertyExifDateTimeDigitized;

//压缩配置

const CFStringRef kCGImagePropertyExifComponentsConfiguration;

//压缩模式像素位

const CFStringRef kCGImagePropertyExifCompressedBitsPerPixel;

//快门速度值

const CFStringRef kCGImagePropertyExifShutterSpeedValue;

//孔径值

const CFStringRef kCGImagePropertyExifApertureValue;

//亮度值

const CFStringRef kCGImagePropertyExifBrightnessValue;

//曝光偏差值

const CFStringRef kCGImagePropertyExifExposureBiasValue;

//最大光圈值

const CFStringRef kCGImagePropertyExifMaxApertureValue;

//距离

const CFStringRef kCGImagePropertyExifSubjectDistance;

//测光模式

const CFStringRef kCGImagePropertyExifMeteringMode;

//光源

const CFStringRef kCGImagePropertyExifLightSource;

//拍摄时的闪光状态

const CFStringRef kCGImagePropertyExifFlash;

//焦距

const CFStringRef kCGImagePropertyExifFocalLength;

//主体区域

const CFStringRef kCGImagePropertyExifSubjectArea;

//相机制造商指定的信息

const CFStringRef kCGImagePropertyExifMakerNote;

//用户信息

const CFStringRef kCGImagePropertyExifUserComment;

//日期和时间标记的秒分数

const CFStringRef kCGImagePropertyExifSubsecTime;

//原始时间

const CFStringRef kCGImagePropertyExifSubsecTimeOriginal;

//数字时间

const CFStringRef kCGImagePropertyExifSubsecTimeDigitized;

//FlashPix版本信息

const CFStringRef kCGImagePropertyExifFlashPixVersion;

//色彩空间

const CFStringRef kCGImagePropertyExifColorSpace;

//X方向像素

const CFStringRef kCGImagePropertyExifPixelXDimension;

//Y方向像素

const CFStringRef kCGImagePropertyExifPixelYDimension;

//与图像相关的声音文件

const CFStringRef kCGImagePropertyExifRelatedSoundFile;

//FlashEnergy

const CFStringRef kCGImagePropertyExifFlashEnergy;

//FrequencyResponse

const CFStringRef kCGImagePropertyExifSpatialFrequencyResponse;

//像素数目

const CFStringRef kCGImagePropertyExifFocalPlaneXResolution;

const CFStringRef kCGImagePropertyExifFocalPlaneYResolution;

const CFStringRef kCGImagePropertyExifFocalPlaneResolutionUnit;

//图像主体的位置

const CFStringRef kCGImagePropertyExifSubjectLocation;

//选择的曝光指数

const CFStringRef kCGImagePropertyExifExposureIndex;

//传感器类型

const CFStringRef kCGImagePropertyExifSensingMethod;

//图像文件源

const CFStringRef kCGImagePropertyExifFileSource;

//场景类型

const CFStringRef kCGImagePropertyExifSceneType;

//CFA模块

const CFStringRef kCGImagePropertyExifCFAPattern;

//对图像数据进行特殊渲染

const CFStringRef kCGImagePropertyExifCustomRendered;

//曝光模式设置

const CFStringRef kCGImagePropertyExifExposureMode;

//白平衡模式

const CFStringRef kCGImagePropertyExifWhiteBalance;

//数字变焦比

const CFStringRef kCGImagePropertyExifDigitalZoomRatio;

//35毫米胶片的等效焦距

const CFStringRef kCGImagePropertyExifFocalLenIn35mmFilm;

//场景捕捉类型(标准,景观,肖像,夜晚)

const CFStringRef kCGImagePropertyExifSceneCaptureType;

//图像增益

const CFStringRef kCGImagePropertyExifGainControl;

//图像对比度

const CFStringRef kCGImagePropertyExifContrast;

//图像饱和度

const CFStringRef kCGImagePropertyExifSaturation;

//图像锐度

const CFStringRef kCGImagePropertyExifSharpness;

//拍摄条件

const CFStringRef kCGImagePropertyExifDeviceSettingDescription;

//主体距离

const CFStringRef kCGImagePropertyExifSubjectDistRange;

//图像的唯一标识

const CFStringRef kCGImagePropertyExifImageUniqueID;

//相机所有者

const CFStringRef kCGImagePropertyExifCameraOwnerName;

//相机序列号

const CFStringRef kCGImagePropertyExifBodySerialNumber;

//透镜规格信息

const CFStringRef kCGImagePropertyExifLensSpecification;

//透镜制造商名称

const CFStringRef kCGImagePropertyExifLensMake;

//透镜模式

const CFStringRef kCGImagePropertyExifLensModel;

//透镜序列号

const CFStringRef kCGImagePropertyExifLensSerialNumber;

//伽马设置

const CFStringRef kCGImagePropertyExifGamma;


目录
相关文章
|
2月前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
233 60
|
2月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
236 4
|
2月前
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
28天前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
121 66
|
1月前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文深入探讨了这两个平台的开发环境,从编程语言、开发工具到用户界面设计等多个角度进行比较。通过实际案例分析和代码示例,我们旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和个人偏好做出明智的选择。无论你是初涉移动开发领域的新手,还是寻求跨平台解决方案的资深开发者,这篇文章都将为你提供宝贵的信息和启示。
33 8
|
2月前
|
安全 Android开发 数据安全/隐私保护
深入探索Android与iOS系统安全性的对比分析
在当今数字化时代,移动操作系统的安全已成为用户和开发者共同关注的重点。本文旨在通过比较Android与iOS两大主流操作系统在安全性方面的差异,揭示两者在设计理念、权限管理、应用审核机制等方面的不同之处。我们将探讨这些差异如何影响用户的安全体验以及可能带来的风险。
56 1
|
2月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
41 2
|
2月前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。
|
2月前
|
JSON 前端开发 API
探索iOS开发之旅:打造你的第一个天气应用
【10月更文挑战第36天】在这篇文章中,我们将踏上一段激动人心的旅程,一起构建属于我们自己的iOS天气应用。通过这个实战项目,你将学习到如何从零开始搭建一个iOS应用,掌握基本的用户界面设计、网络请求处理以及数据解析等核心技能。无论你是编程新手还是希望扩展你的iOS开发技能,这个项目都将为你提供宝贵的实践经验。准备好了吗?让我们开始吧!
|
2月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
76 1