1

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

对于 ViewController.h:

UIImage *img;
UIImage *thumb;

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

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

对于 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 启动时打印了一个 NSLog 并且它执行了两次),但图像是从不重新调整大小!有谁知道为什么??请让我知道,感谢任何有帮助或建议的人!

4

1 回答 1

3

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

thumb = [self scaleImage:img toSize:CGSizeMake(640, 960)];
于 2013-05-17T17:43:48.387 回答