目标C - UIImage调整大小不起作用

时间:2013-05-17 17:34:09

标签: objective-c uiimage image-resizing

我有一个从库中获取图像的程序,但我正在使用我在网上找到的代码来调整图像的大小,以便它可以适合屏幕(基本上是640x960),但它仍然是很大的显示,所以在另一个UIImage我正在复制第一个调整大小的图像并重新调整这个大小使其大约1/4的屏幕(或160x240)。代码是这样的:

for ViewController.h:

UIImage *img;
UIImage *thumb;

-(UIImage*) scaleImage: (UIImage*)image toSize:(CGSize)newSize;

(当然,这只是与我的问题相关的代码)

for ViewController.m

-(UIImage*) scaleImage: (UIImage*)image toSize:(CGSize)newSize {
    UIGraphicsBeginImageContext(newSize);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

并且在另一个函数的同一个m文件中,按下带有这些行的按钮时会调用scaleImage函数:

[self scaleImage:img toSize:CGSizeMake(640, 960)];
thumb = img;
[self scaleImage:thumb toSize:CGSizeMake(160, 240)];

在项目中,我之前能够使用img[info objectForKey:UIImagePickerControllerOriginalImage];成功提供图像,这将是从库中选择的图像。我已经“归档”所有内容以便发生此功能(并且它确实因为我在其中创建了一个UIAlert并显示,并且当scaleImage启动时它会打印出来并且它会执行两次),但是图像是永远不会重新调整!!有谁知道为什么?请让我知道,感谢任何评论帮助或建议的人!!

1 个答案:

答案 0 :(得分:3)

您的scaleImage方法返回缩放图片,例如

thumb = [self scaleImage:img toSize:CGSizeMake(640, 960)];