- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我的主要问题是我需要获取 ALAsset 对象的缩略图。
我尝试了很多解决方案并搜索了数天的堆栈溢出,由于这些限制,我发现的所有解决方案都不适合我:
这是我附带的代码的最后一次迭代:
#import <AssetsLibrary/ALAsset.h>
#import <ImageIO/ImageIO.h>
// ...
ALAsset *asset;
// ...
ALAssetRepresentation *assetRepresentation = [asset defaultRepresentation];
NSDictionary *thumbnailOptions = [NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanTrue, kCGImageSourceCreateThumbnailWithTransform,
(id)kCFBooleanTrue, kCGImageSourceCreateThumbnailFromImageAlways,
(id)[NSNumber numberWithFloat:200], kCGImageSourceThumbnailMaxPixelSize,
nil];
CGImageRef generatedThumbnail = [assetRepresentation CGImageWithOptions:thumbnailOptions];
UIImage *thumbnailImage = [UIImage imageWithCGImage:generatedThumbnail];
问题是,生成的 CGImageRef
既不按方向变换,也不按指定的最大像素大小进行变换;
我还尝试找到一种使用 CGImageSource
调整大小的方法,但是:
CGImageSourceCreateWithURL:
中使用;ALAsset
中提取信息或 ALAssetRepresentation
一个CGDataProviderRef
与 CGImageSourceCreateWithDataProvider:
一起使用;CGImageSourceCreateWithData:
需要我将全分辨率或全屏 Assets 存储在内存中才能工作。我错过了什么吗?
是否有另一种方法可以从 ALAsset
获取自定义缩略图?或 ALAssetRepresentation
我错过了什么?
提前致谢。
最佳答案
您可以使用 CGImageSourceCreateThumbnailAtIndex
从可能较大的图像源创建小图像。您可以使用 ALAssetRepresentation
的 getBytes:fromOffset:length:error:
方法从磁盘加载图像,并使用它来创建 CGImageSourceRef。
然后你只需要将 kCGImageSourceThumbnailMaxPixelSize
和 kCGImageSourceCreateThumbnailFromImageAlways
选项与你创建的图像源一起传递给 CGImageSourceCreateThumbnailAtIndex
,它将创建为您提供较小的版本,而无需将大版本加载到内存中。
关于ios - 从 ALAssetRepresentation 生成自定义缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765340/
我正在使用以下内容从 ALAssetRepresentation 创建一个 NSData 对象,以导出图像文件并从中创建一个 md5 哈希: - (NSUInteger)getBytes:(uint8
我有一个 ALAssetRepresentation 问题。有一个表格以高分辨率显示图库图像。 fullScreenImage 方法花费太多时间,并且表格运行缓慢。如何实现更快的加载?例如,图库图像加
我有一些代码包装了一个 ALAsset 对象,该对象是从枚举 ALAssetLibrary 中的 Assets 中检索到的。我收到有关用户遇到崩溃的报告,其中部分包装器对象向其包含的 ALAsset
我的主要问题是我需要获取 ALAsset 对象的缩略图。 我尝试了很多解决方案并搜索了数天的堆栈溢出,由于这些限制,我发现的所有解决方案都不适合我: 我无法使用默认缩略图,因为它太小了; 我无法使用全
我正在上传相机胶卷中的视频和图像。上传完成后,我得到 32 字节的内存泄漏。仪器显示泄漏在下方 NSUInteger readStatus = [rep getBytes:buffer from
我正在编写一个多线程应用程序,它需要在后台从 ALAssetsLibrary 上传照片。所以我有一个 NSOperation 子类,它通过 Assets 的 URL 找到适当的 ALAsset 并将图
小问题:保证 ALAssetRepresentation URL(其“url”属性)指向同一 Assets 多长时间? documentation describes it as 'persisten
当我尝试访问照片流中的图片时,有时 [asset defaultRepresentation] 方法返回 nil。 根据文档,如果 Assets 在本地(尚)不可用,则可能会发生这种情况。 This
我正在尝试使用 CGImageSourceCreateThumbnailAtIndex有效地创建图像的调整大小版本。我有一些现有代码可以使用磁盘中的图像执行此操作,现在我正在尝试使用来自 ALAsse
我有一个返回 ALAsset 数据的方法。我为一个又一个 Assets 调用此方法,以从它们获取 NSData 并将其上传到服务器。每 4 或 5 次调用后,代码就会卡在下面的 rep.size 调用
这是我在 UITableViewDataSource View Controller 中的方法 - (UITableViewCell *)tableView:(UITableView *)tableV
我正在从我的 UITableView 中的 Assets 加载图像,我注意到我遇到了与从 defaultAssetRepresentation.fullResolutionImage.CGImage.
给定一个 ALAssetRepresentation,是否有可能得到它的全分辨率修饰图像? 如果我使用 fullResolutionImage 方法,我会得到全分辨率图像,但未以任何方式调整。 如果我
我正在尝试使用 fullScreenImage 方法从 ALAssetRepresentation 获取正确旋转的 UIImage。我有几张以不同设备方向拍摄的测试照片;照片在照片应用程序中正确显示。
我正在使用 ALAssetLibrary 从我的相机胶卷中获取我正在制作的自定义 View 的图像。这样做非常简单: library.enumerateGroupsWithTypes(ALAssets
我目前正在使用以下代码从 iOS 应用中的 ALAsset 获取 UIImage。 ALAssetRepresentation *rep = [self.asset defaultRepresenta
当用户在 iOS 的内置 Photos.app 中对照片进行一些更改(裁剪、消除红眼等)时,这些更改不会应用到 fullResolutionImage 由相应的 ALAssetRepresentati
在我的应用程序(在 iOS 4 下运行)中,我收集了通过 选择的图片UIImagePickerController .不幸的是,升级到 iOS 5 后我遇到了一个奇怪的问题。 简而言之,我存储 ALA
我注意到,对于图像,字典 ALAssetRepresentation.metadata 包含两个名为“PixelHeight”和“PixelWidth”的键。我的问题是:是否可以保证所有图像都存在这些
我有以下从 ALAssetRepresentation 中提取数据的代码。 ALAssetRepresentation *representation = ...; size_t size = [re
我是一名优秀的程序员,十分优秀!