gpt4 book ai didi

iphone - 无法使用ALAssets返回的路径URL加载图像

转载 作者:行者123 更新时间:2023-12-01 17:10:19 27 4
gpt4 key购买 nike

我正在使用ALAssets在iPad中写入图像。完成后,我尝试使用返回的URL创建UIImage,但不会加载。这是代码:

LAssetsLibrary *library = [[ALAssetsLibrary alloc] init];  
[library writeImageToSavedPhotosAlbum:[anImage CGImage] orientation:(ALAssetOrientation)[anImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){
if (!error) {
CGImageSourceRef src = CGImageSourceCreateWithURL((CFURLRef) [NSURL fileURLWithPath:[assetURL absoluteString]], NULL);

我的目的是将图像保存到设备,然后使用ImageIO将其转换为另一种格式,最后将其发送到Web服务。 CGImageSourceRef为null,我也尝试了使用相同结果的标准UIImage。

我在这里做错了什么?

编辑:问题是创建CFURLRef时。
如果我做
CGImageSourceCreateWithURL((CFURLRef) assetURL, NULL);

我收到这个错误

ImageIO:CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource失败,错误代码为-11。

但是,如果我尝试使用
[NSURL fileURLWithPath:[assetURL absoluteString]]

路径更改为
assets-library:/asset/asset.JPG%3Fid=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG -- file://localhost/

我找不到如何正确创建该方法所需的CFURLRef的方法。我尝试打印所有我能想到的转换,这就是结果
[assetURL relativePath]
[assetURL relativeString]
[assetURL absoluteURL]
[assetURL absoluteString]
/asset.JPG ,
assets-library://asset/asset.JPG?id=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG
assets-library://asset/asset.JPG?id=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG
assets-library://asset/asset.JPG?id=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG

[NSURL fileURLWithPath:[assetURL relativePath]]
[NSURL fileURLWithPath:[assetURL relativeString]]
[NSURL fileURLWithPath:[assetURL absoluteString]]
file://localhost/asset.JPG
assets-library:/asset/asset.JPG%3Fid=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG -- file://localhost/
assets-library:/asset/asset.JPG%3Fid=57BBBA99-E7BF-4DB7-839E-F915005E6DFA&ext=JPG -- file://localhost/

请帮助,我被困住了:-(

最佳答案

这就是我为案件所做的。

    UIImage* anImage;   //this is the original image    
NSData * imgData = UIImageJPEGRepresentation(anImage, 0.7);
CGImageSourceRef src = CGImageSourceCreateWithData((CFDataRef) imgData, NULL);

NSMutableData *data = [NSMutableData data];
CFStringRef imageType = CFSTR("com.microsoft.bmp");
CGImageDestinationRef myImageDest = CGImageDestinationCreateWithData((CFMutableDataRef) data, imageType, 1, nil);

//Convert!
CGImageDestinationAddImageFromSource(myImageDest, src, 0, myOptions);
CGImageDestinationFinalize(myImageDest);
//Freeing things
CFRelease(myImageDest);
CFRelease(src);

但这只是转换图像,不会将其存储在任何文件中……不确定这是否是原始问题的答案。

关于iphone - 无法使用ALAssets返回的路径URL加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8905980/

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