zoukankan      html  css  js  c++  java
  • 通过ImageIO创建任意大小图片缩略图(image thumbnail)

    创建图片缩略图有可以通过QuartzCore的UIGraphicsGetImageFromCurrentImageContext获取,这种方法需要提前计算好图片的长宽比。其实,ImageIO库提供了一个更为方便的方法,Apple的Documentation里甚至写好了一个方法:CGImageRef MyCreateThumbnailImageFromData (NSData * data, int imageSize)【可以通过搜索apple的文档找到】。不过,文档里的函数里写错了一个参数,以致无法取得thumbnailImage,函数返回的图片的大小始终是原始图片的大小。错误的地方是
     1 // Set up the thumbnail options.
     2    myKeys[0] = kCGImageSourceCreateThumbnailWithTransform;
     3    myValues[0] = (CFTypeRef)kCFBooleanTrue;
     4    myKeys[1] = kCGImageSourceCreateThumbnailFromImageIfAbsent;
     5    myValues[1] = (CFTypeRef)kCFBooleanTrue;
     6    myKeys[2] = kCGImageSourceThumbnailMaxPixelSize;
     7    myValues[2] = (CFTypeRef)thumbnailSize;
     8  
     9  myOptions = CFDictionaryCreate(NULL, (const void **) myKeys,
    10                    (const void **) myValues, 2,
    11                    &kCFTypeDictionaryKeyCallBacks,
    12                    & kCFTypeDictionaryValueCallBacks);

    改为3即可。kCGImageSourceThumbnailMaxPixelSize 是用来设置图片的长/宽像素最大尺寸的。可以为UIImage创建一个category,在其中增加方法


    1 - (UIImage *) createThumbnailImageWithImageSize:(int) imageSize;
    2 {
    3     CGImageRef imagreRef = MyCreateThumbnailImageFromData(UIImagePNGRepresentation(self), imageSize);
    4     return [UIImage imageWithCGImage:imagreRef];
    5 }

     

  • 相关阅读:
    squid代理
    日志、远程日志、日志轮询、DHCP
    环境变量、进程
    rpm、yum
    filesystem安装后产生所有目录
    vRO 添加已有磁盘到VM
    python笔记-8(线程,进程,协程,io多路复用)
    python笔记-7(面向对象、类、面向对象进阶、异常处理、断言、反射、网络(套接字)编程、)
    python3 封装
    python3 继承
  • 原文地址:https://www.cnblogs.com/junay/p/2950948.html
Copyright © 2011-2022 走看看