iPhone - 将调整大小的图像转换为全屏位图

时间:2011-02-08 12:21:00

标签: iphone image bitmap scaling

我有许多不同比例的图像正在调整大小(缩小尺寸)到iPhone / iPad屏幕尺寸。

我需要实现的是创建全屏位图(960x640,480x320,1024x768),此图像居中&调整大小并包括黑色边框。缩放由AspectFit自动完成,但如何将结果转换为全屏图像?

在Android上我使用imageview.buildDrawingCache();imageview.getDrawingCache();。不是最快的解决方案,但对我来说已经足够了。

例如:

  • 图片尺寸:1000x500
  • 图像在iPhone4上缩放为:960x480
  • iPhone4分辨率&我需要的图像尺寸:960x640

知道如何解决这个问题吗?

我需要在内存中使用此图像2分钟,然后我就可以清理它了。

编辑: 这就是我需要的 - 将位图缩放为与周围区域缩放的位图。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用imagecontext

调整图像大小

UIImage * image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]                                                         pathForResource:@ “堆栈”                                                         ofType:@ “PNG”]];

UIGraphicsBeginImageContext(image.size); 
[image1 drawInRect:CGRectMake(0, 0, 960, 480)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();

我认为这会有所帮助.. !!

答案 1 :(得分:0)

我不确定你的问题是什么。如果您需要有关如何调整图像大小的帮助,请查看本教程:Resize a UIImage the right way

如果您想在iPhone 4上呈现视网膜图像,可以使用以下代码:

UIImage *image = [UIImage imageNamed:@"scaledPicture.png"];
CGRect imageframe = CGRectMake(0,0,imageWidth/2,imageHeight/2);
UIImageView *imageview = [[UIImageView] initWithFrame:imageframe];
[window addSubView:imageview]; 

您在CGRect中编写的数字是点数,而不是像素数。在iPhone 4上,1点= 2像素。这就是为什么在上面的代码中实际宽度和高度除以2的原因。

希望这会有所帮助......