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 }

     

  • 相关阅读:
    加法&除法
    [转] KMP算法
    软件测试视频集
    集成测试的目的和意义
    UNIX常用命令简介
    软件测试V模型
    集成测试、单元测试与系统测试的差别
    软件测试的基本概念和方法
    软件测试工程师 笔试题
    软件测试
  • 原文地址:https://www.cnblogs.com/junay/p/2950948.html
Copyright © 2011-2022 走看看