美文网首页
iOS压缩图片

iOS压缩图片

作者: 渣渣__ | 来源:发表于2016-05-06 16:26 被阅读330次

    方法1:

    ```//sdk中提供了方法可以直接调用

    UIImage *img = [UIImage imageNamed:@"some.png"];

    NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);

    //下面是sdk中UIImage.h头文件中的内容

    UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);

    // return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format

    UIKIT_EXTERN NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality);

    // return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)

    ```

    JPEG的转换方法里面第二个参数是压缩系数,可以有效的减小图片的大小。UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大很多。项目中做图片上传之前,经过测试同一张拍照所得照片png大小在8M,而JPG压缩系数为0.75时候,大小只有1M。而且,将压缩系数降低对图片视觉上并没有太大的影响。

    方法2:

    ```

    - (UIImage*)scaleImage:(UIImage*)image scaleFactor:(float)scaleFloat{

    CGSizesize =CGSizeMake(image.size.width* scaleFloat, image.size.height* scaleFloat);

    UIGraphicsBeginImageContext(size);

    CGContextRefcontext =UIGraphicsGetCurrentContext();

    CGAffineTransformtransform =CGAffineTransformIdentity;

    transform =CGAffineTransformScale(transform, scaleFloat, scaleFloat);

    CGContextConcatCTM(context, transform);

    // Draw the image into the transformed context and return the image

    [imagedrawAtPoint:CGPointMake(0.0f,0.0f)];

    UIImage*newimg =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newimg;

    }

    ```

    相关文章

      网友评论

          本文标题:iOS压缩图片

          本文链接:https://www.haomeiwen.com/subject/tdsjrttx.html