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;
        
    }
  • 相关阅读:
    cocostudio 使用教程
    anrdroid AVD启动不起来的问题。Waiting for HOME ('android.process.acore') to be launched
    Android SDK无法更新的问题解决办法
    Code(容斥,好题)
    莫比乌斯反演(转)
    随笔--新建查询
    11427
    uva11722
    uva11021
    How many integers can you find(容斥+dfs容斥)
  • 原文地址:https://www.cnblogs.com/joesen/p/4403737.html
Copyright © 2011-2022 走看看