zoukankan      html  css  js  c++  java
  • IOS 缩放图片常用方法

    /**
     *  指定Size压缩图片 (图片会压缩变形)
     *
     *  @param image 原图
     *  @param size  压缩size
     *
     *  @return 压缩后的图片
     */
    -(UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size
    {
        // 创建一个bitmap的context
        // 并把它设置成为当前正在使用的context
        UIGraphicsBeginImageContext(size);
        
        // 绘制改变大小的图片
        [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
        
        // 从当前context中创建一个改变大小后的图片
        UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
        
        // 使当前的context出堆栈
        UIGraphicsEndImageContext();
        
        // 返回新的改变大小后的图片
        return scaledImage;
    }
    
    /**
     *  等比缩放图片裁剪指定区域图片
     *
     *  @param image 原图
     *  @param size  裁剪范围
     *
     *  @return 裁剪后的图片
     */
    -(UIImage *)compressImageWith:(UIImage *)image scaleToSize:(CGSize)size
    {
        // 原图宽
        CGFloat imageWidth = image.size.width;
        // 原图高
        CGFloat imageHeight = image.size.height;
        
        // 缩放比例
        CGFloat widthScale = imageWidth /size.width;
        CGFloat heightScale = imageHeight /size.height;
        
        // 创建一个bitmap的context
        // 并把它设置成为当前正在使用的context
        UIGraphicsBeginImageContext(CGSizeMake(size.width, size.height));
        
        // 横屏图片
        if (widthScale > heightScale) {
            [image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , size.height)];
        }
        else { // 竖屏图片
            [image drawInRect:CGRectMake(0, 0, size.width , imageHeight /widthScale)];
        }
        
        // 从当前context中创建一个改变大小后的图片
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
        // 使当前的context出堆栈
        UIGraphicsEndImageContext();
        
        return newImage;
        
    }
  • 相关阅读:
    模拟ajax请求爬取微博
    使用nohup+& 踩到的坑
    Python3爬虫一之(urllib库)
    在linux下安装并运行scrapyd
    创建Django项目并将其部署在腾讯云上
    python解析库之 XPath
    python3中urllib库的request模块详解
    HTTP协议详解
    线程之红绿灯
    win7 64 下安装MyGeneration 遇到的问题解决方法
  • 原文地址:https://www.cnblogs.com/joesen/p/4403737.html
Copyright © 2011-2022 走看看