gpt4 book ai didi

iphone - 如何从 UIImagePickerController 获取缩略图或可保存路径以用于 UIImageView?

转载 作者:行者123 更新时间:2023-12-03 18:34:41 25 4
gpt4 key购买 nike

有人可以解释或展示一些示例代码,说明如何在用户使用 UIImagePickerController 选择照片后将缩略图放入 UIImageView 中吗?

假设我想将缩略图设置为 TableView 单元格的图像。当用户按下该单元格时,将显示图像选择器,并且用户选择其设备上已有的图像。我还想保存该缩略图的路径,以便下次显示 View 时,可以显示正确的缩略图。

我能够显示图像选择器,并且我的代理正确获取所选图像,但我想要缩略图的路径,并且我想使用该路径加载缩略图(即我想保存路径)。我今天搜索了几个小时但还没弄清楚。也许我不理解 ALAsset,或者可能是其他东西,但我找不到任何对我有帮助的例子。我以前从未使用过图像选择器或 ALAsset,所以我对此完全陌生。

最佳答案

//如果您正在阅读本文并查看下面的评论并认为??WTF??这是因为我正在编辑我的原始答案,而不是发布两个答案,希望事情会更干净。重要的是要知道 ALAssetsLibrary 是 iOS 4.x 的东西。

下面的代码将获取 Assets 库 URL,然后根据缩略图表示创建 UIImage。虽然我直接使用 asset-library url,但同样的代码没有理由不能通过将字符串表示形式转换为 NSURL 来满足 imageURL 分配。免责声明:此代码可能会泄漏或更糟糕的情况,但它回答了原始发布者的问题,并且希望具有值(value)。

下面的代码大量借用了t his Stack Overflow question基本上涵盖了同一主题。除了此处的代码之外,我还包含了其他问题中引用的 AssetsLibrary.framework 和 ALAssetsLibrary typedef。

整个技巧是您无法直接从 Assets 库引用 NSURL。我认为(尽管我不知道)它以某种方式引用数据存储而不是文件,因此从 URL 返回的数据不是直接 NSData,因此您不能以旧方式使用它。

代码中有一个UIImageView,名为photo。希望其他一切都很容易弄清楚。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSURL *imageURL = [info valueForKey:UIImagePickerControllerReferenceURL];
NSLog(@"%@",imageURL);
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
CGImageRef iref = [myasset thumbnail];
if (iref) {
UIImage *theThumbnail = [UIImage imageWithCGImage:iref];
[[self photo] setImage:theThumbnail];

}
};


ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror)
{
NSLog(@"booya, cant get image - %@",[myerror localizedDescription]);
};

if(imageURL)
{
ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease];
[assetslibrary assetForURL:imageURL
resultBlock:resultblock
failureBlock:failureblock];
}

[self dismissModalViewControllerAnimated:YES];
}

如果您不需要缩略图,但确实想要完整照片,只需将 AssetForURLResult block 中的代码更改为如下所示:

       ALAssetRepresentation *rep = [myasset defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];

我们可以将练习留给用户。

祝你好运,希望这能帮助你解决问题。

关于iphone - 如何从 UIImagePickerController 获取缩略图或可保存路径以用于 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663019/

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