【问题标题】:Objective C - UIImage resizing not workingObjective C - UIImage 调整大小不起作用
【发布时间】:2013-05-12 23:13:23
【问题描述】:

我有一个从库中获取图像的程序,但我正在使用我在网上找到的代码来调整该图像的大小,以便它可以适合屏幕(基本上是 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)];

在该项目中,我之前能够使用[info objectForKey:UIImagePickerControllerOriginalImage]; 成功地为img 提供图像,这将是从库中选择的图像。我已经“文件拥有”了一切,所以这个函数发生了(它确实是因为我在其中创建了一个 UIAlert 并显示它,并在 scaleImage 启动时打印了一个 NSLog 并且它执行了两次),但图像是从不重新调整大小!有谁知道为什么??请告诉我,感谢任何提供帮助或建议的人!

【问题讨论】:

  • 当我尝试将图像调整为更小的比例时,图像实际上更大。我在上面的问题中找到了您的 scaleImage 代码,并且有效。感谢您提出问题并发布您的代码。 :-)
  • 感谢您发布此内容,让我觉得我的贡献比实际做的要多 =)

标签: objective-c uiimage image-resizing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多