Latest 1.0.0
Homepage https://github.com/976431yang/YQImageCompressor
License MIT
Platforms ios 8.0, requires ARC
Frameworks UIKit
Authors

Build Status
Pod Version
Pod Platform

微博:畸形滴小男孩

iOS端简易图片压缩工具
  • 结合了“只压不缩”“只缩不压”来做的“压缩”,在保证达到压缩目标的同时尽量保证图片质量
  • 由于尽可能得想要压缩出来的图片质量尽可能地高,可能压缩子程序要走很多遍,来找到最合适的情况。所以压缩耗时可能较长。推荐使用后台压缩方法
  • 根据不同的情况提供了两种压缩结果:1,压缩得到目标大小的NSData;2,压缩得到目标大小的UIImage
  • 提示:在iOS端使用NSData创建得到的UIImage大小会比原NSData要大,所以根据具体需要目标大小的Data还是目标大小的Image,可以选择不同的方法。

2种使用方法:

-下载文件直接拖到工程中使用,然后:

#import "YQImageCompressTool.h"

-使用CocoaPods:

Podfile: pod 'YQImageCompressor'
#import "YQImageCompressTool.h"

调用目录:

————后台压缩(异步进行,不会卡住前台进程)

后台压缩得到 目标大小的 图片Data
//OldImage  原图
//ShowSize  将要显示的分辨率
//FileSize  文件大小限制
//DataBlock 压缩成功后返回的block (使用block的结果,记得按需获取主线程)
+(void)CompressToDataAtBackgroundWithImage:(UIImage *)OldImage
                                  ShowSize:(CGSize)ShowSize
                                  FileSize:(NSInteger)FileSize
                                     block:(DataBlock)DataBlock;
后台压缩得到 目标大小的 UIImage
//OldImage 原图
//ShowSize 将要显示的分辨率
//FileSize 文件大小限制
//ImgBlock 压缩成功后返回的block (使用block的结果,记得按需获取主线程)
+(void)CompressToImageAtBackgroundWithImage:(UIImage *)OldImage
                                   ShowSize:(CGSize)ShowSize
                                   FileSize:(NSInteger)FileSize
                                      block:(ImgBlock)ImgBlock;

————前台压缩(可能比较慢,造成当前进程卡住)

压缩得到 目标大小的 图片Data
//OldImage 原图
//ShowSize 将要显示的分辨率
//FileSize 文件大小限制
+(NSData *)CompressToDataWithImage:(UIImage *)OldImage
                          ShowSize:(CGSize)ShowSize
                          FileSize:(NSInteger)FileSize;
压缩得到 目标大小的 UIImage
//OldImage 原图
//ShowSize 将要显示的分辨率
//FileSize 文件大小限制
+(UIImage *)CompressToImageWithImage:(UIImage *)OldImage
                            ShowSize:(CGSize)ShowSize
                            FileSize:(NSInteger)FileSize;

————细化调用方法

只压不缩–按UIImage大小压缩,返回UIImage
  • 优点:不影响分辨率,不太影响清晰度
  • 缺点:存在最小限制,可能压不到目标大小
+ (UIImage *)OnlyCompressToImageWithImage:(UIImage *)OldImage
                                 FileSize:(NSInteger)FileSize;
只压不缩–按NSData大小压缩,返回NSData
  • 优点:不影响分辨率,不太影响清晰度
  • 缺点:存在最小限制,可能压不到目标大小
+ (NSData *)OnlyCompressToDataWithImage:(UIImage *)OldImage
                               FileSize:(NSInteger)FileSize;
只缩不压
  • 优点:可以大幅降低容量大小
  • 缺点:影响清晰度
//若Scale为YES,则原图会根据Size进行拉伸-会变形
    //若Scale为NO,则原图会根据Size进行填充-不会变形
+(UIImage *)ResizeImageWithImage:(UIImage *)OldImage
                         andSize:(CGSize)Size
                           Scale:(BOOL)Scale;

Latest podspec

{
    "name": "YQImageCompressor",
    "version": "1.0.0",
    "summary": "An Image Compress Tool for iOS.",
    "homepage": "https://github.com/976431yang/YQImageCompressor",
    "license": "MIT",
    "authors": {
        "FreakyYang": "[email protected]"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/976431yang/YQImageCompressor.git",
        "tag": "1.0.0"
    },
    "source_files": "YQImageCompressor/*.{h,m}",
    "requires_arc": true,
    "frameworks": "UIKit"
}

Pin It on Pinterest

Share This