我搜索了从图片文件中获取EXIF数据并将其写回Swift.但我只能找到不同语言的预定义库.
我还发现了对"CFDictionaryGetValue"的引用,但是我需要哪些密钥来获取数据?我该怎么写回来?
我使用UIImagePickerController在我的iOS应用程序中选择图像,我知道可以通过info [UIImagePickerControllerMediaMetadata]获取exif信息.但是当我通过UIImage将我的图像上传到我的服务器时,大多数exif信息都是条带化的.我想知道是否可以在Http请求中将exif信息添加到我的图像中(之后上传为jpg的图像).如果没有,我该如何解决这个问题?我想改变Make,Model属性(换句话说,用什么设备来拍这张照片)
以下是我的代码片段:
func Tapped() {
let myPickerController = UIImagePickerController()
myPickerController.delegate = self
myPickerController.sourceType = UIImagePickerControllerSourceType.Camera
myPickerController.allowsEditing = false
self.presentViewController(myPickerController, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let image = info[UIImagePickerControllerOriginalImage] as? UIImage
myImageView.image = image
UIImageWriteToSavedPhotosAlbum(image!, self, #selector(ViewController.image(_:didFinishSavingWithError:contextInfo:)), nil)
self.dismissViewControllerAnimated(true, completion: nil)
}
func myImageUploadRequest()
{
let myUrl = NSURL(string: "http://XXXXXX/Uploadfile")
let request = NSMutableURLRequest(URL:myUrl!)
request.HTTPMethod = "POST"
let param = [
"userId" : "7"
]
let boundary = generateBoundaryString()
request.setValue("multipart/form-data; boundary=\(boundary)", …Run Code Online (Sandbox Code Playgroud) 我有一幅带有大量exif信息的图像。但是,当尝试快速读取exif信息时,它显示的exif信息数量有限。
我尝试了以下代码:
let data = UIImageJPEGRepresentation(image, 1.0)
let source = CGImageSourceCreateWithData(data! as CFData, nil)
let metadata = (CGImageSourceCopyPropertiesAtIndex(source!, 0, nil))
debugPrint(metadata ?? "nil")
Run Code Online (Sandbox Code Playgroud)
并显示以下结果:
{
ColorModel = RGB;
Depth = 8;
Orientation = 6;
PixelHeight = 2448;
PixelWidth = 3264;
ProfileName = "sRGB IEC61966-2.1";
"{Exif}" = {
ColorSpace = 1;
PixelXDimension = 3264;
PixelYDimension = 2448;
};
"{JFIF}" = {
DensityUnit = 0;
JFIFVersion = (
1,
0,
1
);
XDensity = 72;
YDensity = 72;
};
"{TIFF}" …Run Code Online (Sandbox Code Playgroud)