gpt4 book ai didi

iphone - 使用 ALAssetsLibrary 和 ALAsset 取出 Image 作为 NSData

转载 作者:行者123 更新时间:2023-12-03 18:20:46 26 4
gpt4 key购买 nike

我希望直接使用 ALAssetsLibrary 和 ALAsset 以 NSData 对象的形式提取图像。

使用 NSURL,我按以下方式取出图像。

NSURL *referenceURL =newURL;
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:referenceURL resultBlock:^(ALAsset *asset)
{
UIImage *copyOfOriginalImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];
}

现在我们将图像作为UIImage,但我需要直接将图像作为NSData。

我希望这样做,因为(我读过)一旦你在 UIImage 中获取图像,我们就会丢失该图像的所有 EXIF 详细信息。

这就是我想直接将图像提取为 NSData 的原因,而不是这样做

NSData *webUploadData=UIImageJPEGRepresentation(copyOfOriginalImage, 0.5);

这一步让我丢失了所有 EXIF 详细信息。

请帮忙。

最佳答案

        ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
[assetLibrary assetForURL:[[self.imagedata objectAtIndex:i] resultBlock:^(ALAsset *asset)
{
ALAssetRepresentation *rep = [asset defaultRepresentation];
Byte *buffer = (Byte*)malloc(rep.size);
NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
NSData *data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];//this is NSData may be what you want
[data writeToFile:photoFile atomically:YES];//you can save image later
}
failureBlock:^(NSError *err) {
NSLog(@"Error: %@",[err localizedDescription]);
}];

关于iphone - 使用 ALAssetsLibrary 和 ALAsset 取出 Image 作为 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473110/

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