关于 图片剪裁的问题

2018-05-25  本文已影响0人  思绪飘零ing

首先 我们在做图盘上传的 时候 都会遇到 图片太大 压缩的问题 记录一下 采用content 上下文 图片 压缩

首先是 swift的 (我是写在image的 类别里面的 )*** 此处的压缩 指的是分辨率 并不是图片的实际尺寸 新手可能分不清

 /// 创建矩形图像

    ///

    /// - Parameters:

    ///  - size: 尺寸

    ///  - backColor: 背景色(默认`white`)

    ///  - lineColor: 线的颜色(默认`lightGray`)

    /// - Returns: 裁切后的图像

   publicfunchq_rectImage(size:CGSize?, backColor:UIColor=UIColor.white, lineColor:UIColor=UIColor.lightGray) ->UIImage? {

        varsize = size

        ifsize ==nil{

            size =self.size

        }

        letrect =CGRect(origin:CGPoint(), size: size!)

        // 1.图像的上下文-内存中开辟一个地址,跟屏幕无关

        /**

         * 1.绘图的尺寸

         * 2.不透明:false(透明) / true(不透明)

         * 3.scale:屏幕分辨率,默认情况下生成的图像使用'1.0'的分辨率,图像质量不好

         *        可以指定'0',会选择当前设备的屏幕分辨率

         */

        UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)

        // 2.绘图'drawInRect'就是在指定区域内拉伸屏幕

    // 背景填充(在裁切之前做填充)

        backColor.setFill()

        UIRectFill(rect)

        draw(in: rect)

        // 3.取得结果

        let result = UIGraphicsGetImageFromCurrentImageContext()

        // 4.关闭上下文

        UIGraphicsEndImageContext()

        // 5.返回结果

        returnresult

    }

 OC 版本的

- (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size  

{  

UIGraphicsBeginImageContextWithOptions(size,NO,0.0);  

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

UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();  

    UIGraphicsEndImageContext();  

return scaledImage;  

}  

上一篇 下一篇

猜你喜欢

热点阅读