zoukankan      html  css  js  c++  java
  • 图片压缩

    //==========================

    // 图像压缩

    //==========================

    - (UIImage *)scaleFromImage:(UIImage *)image

    {

        if (!image)

        {

            return nil;

        }

        NSData  *data       = UIImagePNGRepresentation(image);

        CGFloat dataSize    = data.length/1024;

        CGFloat width       = image.size.width;

        CGFloat height      = image.size.height;

        CGSize  size;

        

        if (dataSize<=50) //小于50k

        {

            return image;

        }

        else if (dataSize <= 100) //小于100k

        {

            size = CGSizeMake(width/1.f, height/1.f);

        }

        else if (dataSize <= 200) //小于200k

        {

            size = CGSizeMake(width/2.f, height/2.f);

        }

        else if (dataSize <= 500) //小于500k

        {

            size = CGSizeMake(width/2.f, height/2.f);

        }

        else if (dataSize <= 1000)//小于1M

        {

            size = CGSizeMake(width/4.f, height/4.f);

        }

        else if (dataSize <= 2000) //小于2M

        {

            size = CGSizeMake(width/4.f, height/4.f);

        }

        else//大于2M

        {

            size = CGSizeMake(width/4.f, height/4.f);

        }

        UIGraphicsBeginImageContext(size);

        [image drawInRect:CGRectMake(0,0, size.width, size.height)];

        UIImage     *newImage   =UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        if (!newImage)

        {

            return  image;

        }

        return      newImage;

    }

    //新图片的大小 = 原图/ (x.f * x.f )

  • 相关阅读:
    对于es6新增的async 和 await的使用和理解
    如何实现文本的竖向排版 && js 打印指定区域
    鼠标透过蒙版点击触发下一层事件,上一层点击事件失效
    小程序的弊端以及Taro优点
    服务器端渲染和客户端渲染区别
    使用mobx 示例
    C语言
    C语言
    C语言
    [转]linux tar 解压命令总结
  • 原文地址:https://www.cnblogs.com/shifu/p/6274957.html
Copyright © 2011-2022 走看看