现在有两张图片,如下:
这里写图片描述 + 这里写图片描述

如何为上面这张图片打上 CSDN 的logo图片呢?实现如下效果:

这里写图片描述

废话少说,上代码:

/* 为一张图片打上水印 */
// 参数说明
// baName : 背景图片名称
// logoName : logo图片名称
+ (instancetype)waterImageWithBg:(NSString *)bgName logo:(NSString *)logoName
{
    UIImage *bgImage = [UIImage imageNamed:bgName];

    // 创建并开启一个基于位图的上下文
    UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);

    // 画背景
    [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)];

    // 画左下角的水印
    UIImage *logoImage = [UIImage imageNamed:logoName];
    CGFloat scale      = 0.5;
    CGFloat margin     = 10;
    CGFloat logoW      = logoImage.size.width * scale;
    CGFloat logoH      = logoImage.size.height * scale;
    CGFloat logoX      = bgImage.size.width - logoW - margin;
    CGFloat logoY      = bgImage.size.height - logoH - margin;
    [logoImage drawInRect:CGRectMake(logoX, logoY, logoW, logoH)];

    // 从上下文中取得制作完毕的UIImage对象
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    // 结束上下文
    UIGraphicsEndImageContext();

    return newImage;
}

总结:同样的,我们可以将其分装到UIImage的category中,方便项目中的调用:-D

更多推荐