给定图像,将白色添加到区域内的所有周围区域 - iOS

时间:2012-01-21 22:08:22

标签: objective-c ios uiimage

给定尺寸为w x h的图像G,如何用白色环绕图像以生成320 x 480的新图像,其中G居中,被白色包围。传入图像的宽度和高度可能会大于320或480,因此首先我需要对其进行缩放以确保它小于320x480(或等于)。

-(UIImage *)whiteVersion:(UIImage *)img {

}

我会使用这些步骤:

Firstly, scale image if needed...then:
1. Create a UIImage of size 320x480
2. Paint the whole thing white
3. Paint G (the image) in the center by using some simple math to find the location

但是,我无法弄清楚第1步或第2步。

1 个答案:

答案 0 :(得分:5)

您不会绘制图像。你绘制图形上下文。有不同种类的图形上下文。图像图形上下文允许您将其内容的快照作为图像。

- (UIImage *)whiteVersion:(UIImage *)myImage {
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 480), YES, myImage.scale);
    [[UIColor whiteColor] setFill];
    UIRectFill(CGRectInfinite);
    [myImage drawAtPoint:CGPointMake((320 - myImage.size.width) / 2, (480 - myImage.size.height) / 2)];
    UIImage *myPaddedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return myPaddedImage;
}

您可以通过仔细阅读Drawing and Printing Guide for iOSQuartz 2D Programming Guide了解有关在iOS上绘图的详情。