2016-09-12 57 views
0
- (UIImage *)createThumbnailImage:(UIImage *)image withSize:(CGSize)size { 
CGRect imageRect = CGRectMake(0.0, 0.0, size.width, size.height); 
UIGraphicsBeginImageContext(size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClearRect(context, CGRectMake(0, 0, size.width, size.height)); 

CGContextSetInterpolationQuality(context, 0.8); 

[image drawInRect:imageRect blendMode:kCGBlendModeNormal alpha:1]; 

UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return thumbnail; 
} 
- (void)viewDidLoad { 
[super viewDidLoad]; 
UIImage *inputImage = [UIImage imageNamed:@"dog.jpg"]; 
UIImage *image = [self createThumbnailImage:inputImage withSize:CGSizeMake(640.0, 480.0)] 
} 

我通過上面的代碼得到了縮略圖(640 * 480)。還有一些奇怪的問題困擾着我。剪輯大PNG使ios應用程序崩潰

當我發送一個JPG(10000 * 10000)的方法,它運作良好。

但是當我發送一個相同大小的PNG時,應用程序會崩潰。

我試圖找到一些關於jpg和png之間區別的文檔,但它沒有任何意義。

有沒有人有任何關於這個錯誤的想法?

+0

因爲您分配了太多的內存你崩潰的iOS,處理它們之前降低這些圖像的大小,10000x10000的方式過於大。 – MoDJ

回答

0
-(UIImage *)getNeedImageFrom:(UIImage*)image cropRect:(CGRect)rect 
{ 

    CGImageRef subImage = CGImageCreateWithImageInRect(image.CGImage, rect); 
    UIImage *croppedImage = [UIImage imageWithCGImage:subImage]; 
    CGImageRelease(subImage); 
    return croppedImage; 
} 

可以請你檢查,如果這解決您的問題

+0

我的描述可能會有一些偏差。我想調整圖像大小,而不是裁剪圖像。我爲此感到抱歉 。任何方式,謝謝你的答案= = – tripleCC