作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 iOS 中的 CGImageMetadataRef 上设置 kCGImagePropertyExifUserComment?这些是我找到的唯一功能,它们仅适用于 MacOS
最佳答案
给定图像数据,您可以通过以下方式获得它的属性
func getImageDataProperties(_ data: Data) -> NSDictionary? {
if let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil)
{
if let dictionary = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil) {
return dictionary
}
}
return nil
}
exif注释可以通过属性访问如下
if let properties = getImageDataProperties(data) {
if let exif = properties[kCGImagePropertyExifDictionary] as? NSDictionary {
if let comment = exif[kCGImagePropertyExifUserComment] as? String {
...
}
}
}
编辑评论后,您可以使用以下给定的原始图像数据和更改后的属性字典来保存图像
// add image properties (exif, gps etc) to image
func addImageProperties(imageData: Data, properties: NSMutableDictionary) -> Data? {
// create an imagesourceref
if let source = CGImageSourceCreateWithData(imageData as CFData, nil) {
// this is of type image
if let uti = CGImageSourceGetType(source) {
// create a new data object and write the new image into it
let destinationData = NSMutableData()
if let destination = CGImageDestinationCreateWithData(destinationData, uti, 1, nil) {
// add the image contained in the image source to the destination, overidding the old metadata with our modified metadata
CGImageDestinationAddImageFromSource(destination, source, 0, properties)
if CGImageDestinationFinalize(destination) == false {
return nil
}
return destinationData as Data
}
}
}
return nil
}
关于ios - 如何在 CGImageMetadataRef 上设置 kCGImagePropertyExifUserComment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44529463/
如何在 iOS 中的 CGImageMetadataRef 上设置 kCGImagePropertyExifUserComment?这些是我找到的唯一功能,它们仅适用于 MacOS https://g
我是一名优秀的程序员,十分优秀!