如何从两个图像创建UIImage:图片和边框

3 iphone objective-c uiimage

我正在开发一个iPhone应用程序,我需要在运行时操作图像,以便我可以给它一个图像边框.

我需要结合两个UIImages,一个作为边框或背景图像,另一个UIImage将驻留在第一个,所以最好的方法是什么?

我读了一些函数,比如UIGraphicsGetCurrentContext(),但它似乎应该在主线程完成,我需要一些较轻的代码,因为我需要多次调用它.

谢谢

zrz*_*zka 7

图像处理

这是一个例子(未经过测试,只是为了向您展示一个想法):

-(UIImage *)imageWithImage:(UIImage *)image borderImage:(UIImage *)borderImage covertToSize:(CGSize)size {
    UIGraphicsBeginImageContext(size);
    [borderImage drawInRect:CGRectMake( 0, 0, size.width, size.height )];
    [image drawInRect:CGRectMake( 10, 10, size.width - 20, size.height - 20)];
    UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return destImage;
}
Run Code Online (Sandbox Code Playgroud)

它绘制背景图像,而不是图像,这将是非常小的.如果你想真正使用图像操作并且borderImage不透明,你可以使用它.如果它是透明的,您可以在图像上绘制它(使用drawRect:calls交换行).

仅供展示

或者,如果您只想将其用于显示目的,则可以叠加视图,也可以使用Quartz并通过CALayer设置某种边框.

self.imageView.layer.cornerRadius = 3.0;
self.imageView.layer.masksToBounds = YES;
self.imageView.layer.borderColor = [UIColor blackColor].CGColor;
self.imageView.layer.borderWidth = 1.0;
Run Code Online (Sandbox Code Playgroud)