如何在iPhone应用程序中仅缩放图像的特定部分?

时间:2012-01-30 01:12:51

标签: iphone objective-c ios image-processing

我想在iPhone应用程序中缩放图像但不完全。我只想缩放特定部分,如底部或中间部分...我该怎么做?

请帮忙。

由于

2 个答案:

答案 0 :(得分:31)

听起来你想做一种9切片缩放或3切片缩放。假设你有以下图片:

Original

你想让它看起来像这样:

Scaled

(对角线末端部分根本不伸展,顶部和底部部分伸展水平,左右部分伸展垂直)

为此,请在iOS 4.x及更早版本中使用-stretchableImageWithLeftCapWidth:topCapHeight:,或在iOS 5中使用-resizableImageWithCapInsets:

UIImage *myImage = [UIImage imageNamed:@"FancyButton"];
UIImage *myResizableImage = [myImage resizableImageWithCapInsets:UIEdgeInsetsMake(21.0, 13.0, 21.0, 13.0)];
[anImageView setImage:myResizableImage]

为了帮助可视化缩放,这里是一个显示上述封面插图的图像:

Insets

答案 1 :(得分:1)

我不知道有任何方法可以调整UIImage的一部分。通过使用CGImageCreateWithImageInRect从主图像创建单独的图像然后使用您需要的不同速率缩放单独的图像,我的方法略有不同。

请参阅: