zoukankan      html  css  js  c++  java
  • IOS中修改图片的大小:修改分辨率和裁剪

    在IOS开发中,经常有限制图片文件大小的,有的用户图片很大,导致上传时间慢,造成问题。

    如:微信分享中,如果图片的大小好像大于50kbytes,就分享失败,而且没有任何提示。

    所以,我添加了两个函数:

    一、修改当前图片的大小,newSize是新的size尺寸,这个方法帮助用户获取到更小的图片。

    但是这个newSize的尺寸建议跟原图一样,不然图片就变形了。

    - (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize

    {

        // Create a graphics image context

        UIGraphicsBeginImageContext(newSize);

        

        // Tell the old image to draw in this new context, with the desired

        // new size

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

        

        // Get the new image from the context

        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

        

        // End the context

        UIGraphicsEndImageContext();

        

        // Return the new image.

        return newImage;

    }

    二、截图功能,实现用户想要截取图的RECT

    - (UIImage *)getImageByCuttingImage:(UIImage *)image Rect:(CGRect)rect{

        //大图bigImage

        //定义myImageRect,截图的区域

        CGRect myImageRect = rect;

        UIImage* bigImage= image;

        CGImageRef imageRef = bigImage.CGImage;

        CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, myImageRect);

        CGSize size;

        size.width = rect.size.width;

        size.height = rect.size.height;

        UIGraphicsBeginImageContext(size);

        CGContextRef context = UIGraphicsGetCurrentContext();

        CGContextDrawImage(context, myImageRect, subImageRef);

        UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];

        UIGraphicsEndImageContext();

        return smallImage;

    }

  • 相关阅读:
    模-数(A/D)转换器
    数-模(D/A)转换器
    VIM 常用命令
    Linux常用命令
    一个开关电源传导、辐射处理案例-----Layout环路
    解决:PADS导入.DXF结构图出现坐标超出范围问题
    Python3-threading模块-多线程
    Python3-socketserver模块-网络服务器框架
    Python3-socket模块-低级网络接口
    Python3-面向对象
  • 原文地址:https://www.cnblogs.com/runner42/p/4633907.html
Copyright © 2011-2022 走看看