gpt4 book ai didi

iphone - ALAsset ,将照片发送到网络服务,包括其 exif 数据

转载 作者:行者123 更新时间:2023-12-03 19:05:56 25 4
gpt4 key购买 nike

我想将相机胶卷中的照片发送到网络服务 - 包括其 exif 数据。我正在使用 ASIFormDataRequest - 所以我这样做:

ASIFormDataRequest *request = [[ASIFormDataRequest alloc]initWithURL:url];

为了节省内存,我想直接发送文件:

[request addFile:localPath forKey:@"image"];

所以我需要 Assets 的本地路径。我想我无法获取 Assets 的本地路径,所以我暂时将 Assets 保存到文件中:

ALAsset* selectedAsset = [assets objectAtIndex:index];
CGImageRef imageRef = selectedAsset.defaultRepresentation.fullScreenImage;
UIImage* image = [UIImage imageWithCGImage:imageRef];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDirectory = [paths objectAtIndex:0];

NSData* imageData = UIImagePNGRepresentation(image);
NSString* filePath = [NSString stringWithFormat:@"%@/imageTemp.png",cachesDirectory];
[imageData writeToFile:filePath atomically:YES];

然后我用这个路径来做

[request addFile:localPath forKey:@"image"];

图像被发送到服务器 - 但没有我需要的 exif 数据。除此之外,我认为必须有一种更聪明的方法来做到这一点。

蒂亚

最佳答案

好的 - 我想我已经明白了。诀窍是使用 defaultRepresentaion 的原始数据:

ALAsset* selectedAsset = [assets objectAtIndex:index];

int byteArraySize = selectedAsset.defaultRepresentation.size;

NSMutableData* rawData = [[NSMutableData alloc]initWithCapacity:byteArraySize];
void* bufferPointer = [rawData mutableBytes];

NSError* error=nil;
[selectedAsset.defaultRepresentation getBytes:bufferPointer fromOffset:0 length:byteArraySize error:&error];
if (error) {
NSLog(@"%@",error);
}
rawData = [NSMutableData dataWithBytes:bufferPointer length:byteArraySize];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDirectory = [paths objectAtIndex:0];
NSString* filePath = [NSString stringWithFormat:@"%@/imageTemp.png",cachesDirectory];
[rawData writeToFile:filePath atomically:YES];

使用路径将图像发送到服务器后,服务器上的文件保留所有 exif 数据

关于iphone - ALAsset ,将照片发送到网络服务,包括其 exif 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6881923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com