zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    【Express系列】第3篇——接入mysql
    【Express系列】第2篇——主程序的改造
    【Express系列】第1篇——项目创建
    AngularJS内置指令
    node服务端搭建学习笔记
    生成ssh key
    webstorm的常用操作
    VSCode 常用插件
    php集成包
    composer安装特别慢的解决方案
  • 原文地址:https://www.cnblogs.com/smileK/p/9670527.html
Copyright © 2011-2022 走看看