zoukankan      html  css  js  c++  java
  • 关于图片的重绘,从而进行压缩

    //重新画图像

    -(NSData *)drawPicture:(UIImage *)image

    {

        // 加载图片

    //    UIImage *image = [UIImage imageNamed:@"小黄人"];

        

        // 1.开启上下文

        // size:位图上下文,一般根图片一样大

        // opaque:不透明度,只要跟上下文相关的都是叫不透明度,根view相关的叫透明度

        // opaque:YES 不透明 NO: 透明,一般都是使用透明的上下文

        // scale: 0 表示不需要缩放

        UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.1);

        

        // 2.画图片

        [image drawAtPoint:CGPointZero];

        

        

        // 4.把上下文中的内容生成一张图片,从上下文中获取图片

        image = UIGraphicsGetImageFromCurrentImageContext();

        

        // 5.关闭上下文

        UIGraphicsEndImageContext();

        

        // 把图片转换成二进制数据

        NSData *data = UIImagePNGRepresentation(image);

        

        // 写入桌面

        return data;

    }

    对比与直接用

      UIImageJPEGRepresentation(<#UIImage * _Nonnull image#>, <#CGFloat compressionQuality#>)

     进行压缩。第一种方法的优势是不会使图片变形,只是像素变小,等比例压缩

  • 相关阅读:
    全栈的苦逼和崛起
    Swift内部类调用外部类方法、属性的变通
    Assets.xcassets误删后的恢复
    UITableViewCell嵌套UITableView的正确姿势
    GPU Accelerated Computing with Python
    Windows 10创意者更新ISO发布!官方下载
    Amazing iOS Tips
    self-sizing cell的一个问题
    buf.swap32()
    buf.swap16()
  • 原文地址:https://www.cnblogs.com/handsomeBoys/p/5083188.html
Copyright © 2011-2022 走看看