• iOS基础(十八)——调整图片尺寸和大小


    调整图片尺寸和大小

    /**
     *  调整图片尺寸和大小
     *
     *  @param sourceImage  原始图片
     *  @param maxImageSize 新图片最大尺寸
     *  @param maxSize      新图片最大存储大小
     *
     *  @return 新图片imageData
     */
    + (NSData *)reSizeImageData:(UIImage *)sourceImage maxImageSize:(CGFloat)maxImageSize maxSizeWithKB:(CGFloat) maxSize
    {
        
        if (maxSize <= 0.0) maxSize = 1024.0;
        if (maxImageSize <= 0.0) maxImageSize = 1024.0;
        
        //先调整分辨率
        CGSize newSize = CGSizeMake(sourceImage.size.width, sourceImage.size.height);
        
        CGFloat tempHeight = newSize.height / maxImageSize;
        CGFloat tempWidth = newSize.width / maxImageSize;
        
        if (tempWidth > 1.0 && tempWidth > tempHeight) {
            newSize = CGSizeMake(sourceImage.size.width / tempWidth, sourceImage.size.height / tempWidth);
        }
        else if (tempHeight > 1.0 && tempWidth < tempHeight){
            newSize = CGSizeMake(sourceImage.size.width / tempHeight, sourceImage.size.height / tempHeight);
        }
        
        UIGraphicsBeginImageContext(newSize);
        [sourceImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        //调整大小
        NSData *imageData = UIImageJPEGRepresentation(newImage,1.0);
        CGFloat sizeOriginKB = imageData.length / 1024.0;
        
        CGFloat resizeRate = 0.9;
        while (sizeOriginKB > maxSize && resizeRate > 0.1) {
            imageData = UIImageJPEGRepresentation(newImage,resizeRate);
            sizeOriginKB = imageData.length / 1024.0;
            resizeRate -= 0.1;
        }
        
        return imageData;
    }
    
  • 相关阅读:
    c语言 数组名是常量指针
    c语言 动态数组
    c语言 指针的值
    c语言 &取地址运算符的理解
    c语言 指针与地址的区别
    c语言 指针与数组
    linux cheese摄像机工具在window电脑上显示
    C#实现简单的 Ping 的功能,用于测试网络是否已经联通
    c# 扫描局域网IP列表的几种方法
    c# 遍历局域网计算机(电脑)获取IP和计算机名称
  • 原文地址:https://www.cnblogs.com/smileK/p/9670527.html
Copyright © 2020-2023  润新知