首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从ALAssetRepresentation生成自定义缩略图

在 iOS 中,从 ALAssetRepresentation 生成自定义缩略图可以采用以下步骤:

Step 1: 获取 ALAssetRepresentation 的图像数据。

代码语言:objc
复制
ALAsset *asset = [self.assetGroup asset];
ALAssetRepresentation *representation = [asset defaultRepresentation];
NSData *imageData = [representation defaultPixelBuffer];

Step 2: 创建一个空的图像。

代码语言:objc
复制
CGImageRef imageRef = CGImageCreate(
    CGImageGetWidth(imageData),
    CGImageGetHeight(imageData),
    CGImageGetBitsPerComponent(imageData),
    CGImageGetBytesPerRow(imageData),
    CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3),
    kCGImageAlphaNoneSkipLast
);

Step 3: 将图像数据渲染到刚刚创建的空图像中。

代码语言:objc
复制
CGContextRef context = CGBitmapContextCreate(nil,
    CGImageGetWidth(imageRef),
    CGImageGetHeight(imageRef),
    8,
    CGImageGetBytesPerRow(imageRef),
    CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3),
    kCGImageAlphaNoneSkipLast);

CGImageRef drawnImageRef = CGBitmapContextCreateImage(context);
CGContextRelease(context);

UIImage *drawnImage = [UIImage imageWithCGImage:drawnImageRef];
CGImageRelease(drawnImageRef);

Step 4: 将生成的自定义缩略图存储到 UIImage 对象中。

代码语言:objc
复制
return drawnImage;

通过上述步骤,可以从 ALAssetRepresentation 生成自定义缩略图,并在需要时使用 UIImage 显示缩略图。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • iOS开发照片框架详解(一)-- AssetsLibrary

    最近刚好在制作一个自定义的 iOS 图片选择器,顺便整理一下 iOS 中对照片框架的使用方法。...ALAssetRepresentation: ALAssetRepresentation 是对 ALAsset 的封装(但不是其子类),可以更方便地获取 ALAsset 中的资源信息,每个 ALAsset...一般来说,展示资源列表都会使用缩略图(result.thumbnail),因此即使资源很多,遍历资源的速度也会相当快。...系统相册的处理过程大概也是如上,可以看出,在整个过程中并没有使用到图片的 fullResolutionImage,相册列表展示到最终查看资源,都是使用缩略图,这也是 iOS 相册加载快的一个重要原因。...实际上只是在数组中储存了这些相册和资源在 AssetsLibrary 中的引用(指针),因而无论把相册和资源储存数组后如何利用这些数据,都首先需要确保 AssetsLibrary 没有被 ARC 释放,否则把数据数组中取出来时

    1.6K70

    ios开发照片框架详解(一)-- AssetsLibrary

    最近刚好在制作一个自定义的 iOS 图片选择器,顺便整理一下 iOS 中对照片框架的使用方法。...ALAssetRepresentation: ALAssetRepresentation 是对 ALAsset 的封装(但不是其子类),可以更方便地获取 ALAsset 中的资源信息,每个 ALAsset...一般来说,展示资源列表都会使用缩略图(result.thumbnail),因此即使资源很多,遍历资源的速度也会相当快。...系统相册的处理过程大概也是如上,可以看出,在整个过程中并没有使用到图片的 fullResolutionImage,相册列表展示到最终查看资源,都是使用缩略图,这也是 iOS 相册加载快的一个重要原因。...实际上只是在数组中储存了这些相册和资源在 AssetsLibrary 中的引用(指针),因而无论把相册和资源储存数组后如何利用这些数据,都首先需要确保 AssetsLibrary 没有被 ARC 释放,否则把数据数组中取出来时

    1.3K90

    iOS中,系统相册的那些事

    实现自定义,iOS9.0之后的版本需要使用Photos.fraework。...2.ALAsset:对应相册中的一张图片或者一个视频,并且包含对应图片和视频的详细信息,可获取图片对应的缩略图...,还可通过ALAsset的实例方法保存图片和视频; 3.ALAssetRepresentation:可简单理解为对ALAsset的封装,对于给定的ALAsset都至少会对应一个ALAssetRepresentation...,通过ALAsset的实例方法 defaultRepresentation获得对应的ALAssetRepresentation,例如使用系统相机的拍摄的RAW+JPEG照片,则会有两个ALAssetRepresentation...通过ALAssetRepresentation可以获取ALAsset的原图、全屏图、文件名等信息; 自定义行相册的思路 1.实例化照片库,获取所有的相册; 2.展示相册中的所有照片,可自义展示样式

    1.1K20

    php生成缩略图类timthumb

    用过这个类的都应该很熟悉,此类可以用来生成图片的缩略图并加以处理,如果在linux环境下安装了optipng或pngcrush工具,也可以进行网站的截图操作。...文件下载地址:http://www.zjkweiqi.cn/pcdown/93702.html wordpress自带的缩略图功能会对每次上传的所有图片根据设置的图片尺寸进行裁剪,并把原图和裁剪后的图片保存在网站空间中...该软件是专门针对wordpress开发的集成在wordpress主题中的缩略图应用项目,只会对调用的图片进行裁剪,而且是在有访问请求时才临时生成一个配置文件,在一定时间内缓存在空间中,不会生成多余的缩略图...h : 生成图片的高度,如果高度和宽度都没有指定,则默认为100*100 zc : 生成图片的缩放模式,可选值0, 1, 2, 3, 默认为1,每个值的不同之处可看下面文件的第100行注释 q : 生成图片的质量...,默认90 a : 超出部分的裁剪位置,和缩放模式有关,可选值t, b, l, r, 默认为顶部裁剪 f : 需要对生成后的图片使用一些过滤器的话,则在这里传不同过滤器的代码和值,具体操作方法可见下面文件的第

    1.5K00

    iOS中,系统相册的那些事

    实现自定义,iOS9.0之后的版本需要使用Photos.fraework。...通过ALAssetsGroup可以获取相册相应的信息,以及获取到对应相册下的所有图片资源; 2.ALAsset:对应相册中的一张图片或者一个视频,并且包含对应图片和视频的详细信息,可获取图片对应的缩略图...,还可通过ALAsset的实例方法保存图片和视频; 3.ALAssetRepresentation:可简单理解为对ALAsset的封装,对于给定的ALAsset都至少会对应一个ALAssetRepresentation...,通过ALAsset的实例方法defaultRepresentation获得对应的ALAssetRepresentation,例如使用系统相机的拍摄的RAW+JPEG照片,则会有两个ALAssetRepresentation...通过ALAssetRepresentation可以获取ALAsset的原图、全屏图、文件名等信息; 自定义行相册的思路 1.实例化照片库,获取所有的相册; 2.展示相册中的所有照片,可自义展示样式,多以集合视图的形式展现

    1.4K40

    C# 图片处理生成缩略图

    缩略图通常是将图片内容进行一定的缩小展现,或裁剪展现,主要有两个目的,一是提供一定的预览功能,二是节省屏幕展示空间、节省流量。 在网站中我们通常运用在商品的列表,比如商城、图书、新闻等等列表的图片。...在C#中我们如何生成缩略图呢,也就是缩小图片,下面我们来看一看如何缩小图片。...其中方法参数如下: originalImagePath:源图路径(物理路径) thumbnailPath:缩略图路径(物理路径) width:生成缩略图宽度 height:生成缩略图高度 mode...:生成缩略图的模式 public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int...通过如上的几步就完成了缩略图生成

    88050

    C# 生成指定图片的缩略图

    因此,生成缩略图主要要达到以下目的: 1、缩略图通过压缩技术在尽量保证显示质量的情况下,能够在 Web 浏览器中更加迅速地载入数据。 2、较小的数据量可以节省流量成本。...3、制作存储新的缩略图(仅用于查询时显示)可以更加直观的吸引用户,提高系统体验感。...Byte[] Byte[] 类型数据,非唯一选项 3 thumbnailPath string 非必选项,方法返回压缩后的 Byte[]数组数据,如果同时指定输出文件路径 thumbnailPath,则同时生成这个文件...4 width=0 int 指定输出缩略图的宽width,默认为0,表示为原图的宽 5 height=0 int 指定输出缩略图的高height,默认为0,表示为原图的高 6 mode string...//方法返回压缩后的 Byte[]数组数据,如果同时指定输出文件路径thumbnailPath,则同时生成这个文件。

    11710

    PHP自动生成缩略图函数的源码示例

    一个简单但功能比较完善的自动生成缩略图的函数,可以按需要对图片进行缩放、裁切、锁定宽或高、使用空白填充 以下为源码,比较简单,相信很容易看明白,记得打开 GD 库的支持哦: <?...php /** * 生成缩略图 * @param string 源图绝对完整地址{带文件名及后缀名} * @param string 目标图绝对完整地址{带文件名及后缀名} * @param int...缩略图宽{值设为0时目标高度不能为0,目标宽度为源图宽*(目标高度/源图高)} * @param int 缩略图高{值设为0时目标宽度不能为0,目标高度为源图高*(目标宽度/源图宽)} *...'jpeg' : $type); $dst_h = $height; $dst_w = $width; $x = $y = 0; /** * 缩略图不超过源图尺寸(前提是宽或高只有一个) */ if((.../test_thumb.jpg"; //生成缩略图存放的完整路径和名称 /* 生成宽300px,高200px的缩略图,不进行裁切,空白部分将会使用背景色填充 */ $stat = img2thumb(

    1.1K31

    通过 imagick 让 PHP 生成 PSD 文件缩略图

    ); //去除图片信息 $im->setImageCompressionQuality(80); //图片质量 $im->writeImage('1.jpg');   以上代码已经经过测试可以正确生成出一张...建议缩略图还是以 jpg 格式,因为 png 格式不支持压缩,我在测试的时候使用 30M 的 PSD 文件,生成出来的 png 缩略图有 3M 多,而 jpg 只有 200KB 左右,并且生成 png...另外还做了极端测试,用了一近 600M 的 PSD 文件生成 jpg 缩略图,速度基本在2秒内,文件大小不到 2.5M ,由于并未对图片进行尺寸的修改,所以最终生成文件的体积可以根据实际情况再减小。...第五步、其它格式   除了 PSD 文件,我还另外尝试了一些其它格式,比如 MP4 、AVI 等视频格式,但生成速度超级慢。...最后发现比较实用的就是生成 PDF 文件的缩略图,但处理 PDF 文件前,需要安装 Ghostscript ,然后整体的代码基本和生成 PSD 的代码一样 $im = new Imagick();

    2.9K50
    领券