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 )

  • 相关阅读:
    科幻的意义---《超新星纪元》后记
    论文翻译第二弹--用python(或Markdown)对论文复制文本进行处理
    python note 001
    matlab读取txt文本
    VS中添加lib与dll
    Wake-Sleep(W-S)算法【转载】
    清华大学《C++语言程序设计进阶》线上课程笔记06---继承、派生、多态性
    清华大学《C++语言程序设计基础》线上课程笔记05---vector对象,对象的复制与移动,string类
    清华大学《C++语言程序设计基础》线上课程笔记04---指针
    Linux线程的信号量同步
  • 原文地址:https://www.cnblogs.com/shifu/p/6274957.html
Copyright © 2011-2022 走看看