图片文件等比例缩放
.h
#import <Foundation/Foundation.h>
@class BaseFileModel;
typedef void (^successPreBlock)();
typedef void (^failePreBlock)();
@interface ImagePreviewOperation : NSOperation{
    BOOL _isLocal;
    NSString *_compressPath;
    successPreBlock _success;
    failePreBlock _faile;
    BaseFileModel *_file;
}
-(id)initWithFile:(BaseFileModel *)file isLocal:(BOOL) isLocal successHandle:(successPreBlock)success faileHandle:(failePreBlock)faile;
@end
.m
#import "ImagePreviewOperation.h"
#import "ImageUtil.h"
#import "LocalFileModel.h"
@implementation ImagePreviewOperation
-(id)initWithFile:(BaseFileModel *)file isLocal:(BOOL) isLocal successHandle:(successPreBlock)success faileHandle:(failePreBlock)faile{
    if (self = [super init]) {
        _file = file;
        _isLocal = isLocal;
        _success = success;
        _faile = faile;
    }
    return self;
}
/*
 判断图片尺寸,按1024标准缩放
 */
-(CGSize)fitSize:(CGSize)imageSize{
    if(imageSize.width == 0 && imageSize.height ==0)
        return CGSizeMake(0, 0);
    CGFloat wscale = imageSize.width/1024;
    CGFloat hscale = imageSize.height/1024;
    CGFloat scale = MAX(wscale, hscale);
    if (scale > 1.0f) {
        return CGSizeMake(imageSize.width/scale, imageSize.height/scale);
    }
    
    return imageSize;
}
/*
    处理图片
 */
-(UIImage *)fitSmallImage:(UIImage *)image{
    if (nil == image) {
        return nil;
    }
    if (image.size.width < 1024 && image.size.height < 1024) {
        return image;
    }
    CGSize size = [self fitSize:image.size];
    UIGraphicsBeginImageContext(size);
    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    [image drawInRect:rect];
    UIImage *newimage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newimage;
}
-(void)main{
    NSLog(@"pre begin");
    @try {
        UIImage *image = nil;
        if (_isLocal) {
            LocalFileModel *localFile = (LocalFileModel *)_file;
            image = [UIImage imageWithContentsOfFile:localFile.absolutePath];
        }else{
            image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", NSTemporaryDirectory(), [[ImageUtil compressImagePath:_file isLocal:_isLocal] lastPathComponent]]];
        }
        image = [self fitSmallImage:image];
        NSString *previewPath = [ImageUtil previewImagePath:_file isLocal:_isLocal];
        NSData *data = UIImageJPEGRepresentation(image, 1);
        NSLog(@"pre data= %lu",(unsigned long)data.length);
        [data writeToFile:previewPath atomically:YES];//保存previewimage
        image = nil;
        _success();
    }
    @catch (NSException *exception) {
        NSLog(@"previewOperationException %@",exception);
        _faile();
    }
    @finally {
    }
    
}
                    
                
                
            
        
浙公网安备 33010602011771号