在另一个 UIImage 之上添加 UIImage
Posted
技术标签:
【中文标题】在另一个 UIImage 之上添加 UIImage【英文标题】:Add UIImage on top of another UIImage 【发布时间】:2012-05-09 19:50:39 【问题描述】:我有两张图片:第一张是用户个人图片,第二张是图标(徽章)。
我想在第一个 uiimage(用户的图像)的左下角添加第二个 uiimage(图标)并将它们保存到一个新的 Uiimage 中。
谢谢
【问题讨论】:
【参考方案1】:试试这个方法:
-(UIImage *)drawImage:(UIImage*)profileImage withBadge:(UIImage *)badge
UIGraphicsBeginImageContextWithOptions(profileImage.size, NO, 0.0f);
[profileImage drawInRect:CGRectMake(0, 0, profileImage.size.width, profileImage.size.height)];
[badge drawInRect:CGRectMake(0, profileImage.size.height - badge.size.height, badge.size.width, badge.size.height)];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultImage;
您可以通过以下方式使用它:
UIImage *myBadgedImage = [self drawImage:profileImage withBadge:badgeImage];
【讨论】:
知道为什么代码会采用某些 UIImage 并放大它们 - 本质上会丢失实际大小吗?此代码对我们不起作用,因为我们的图像正在放大 - 即使我们只传递没有徽章的个人资料图像。 拯救了我的一天。我希望我不必恢复到这一点,将 UIImageViews 堆叠在一起而不是使用这个帮助器 @AntonTropashko badge.size.height 因不同图像而异,即徽章图像调整大小。我们可以让它适合任何 profileImage 尺寸(比如 100 高度)吗?谢谢!【参考方案2】:试试这个:
CGFloat scale = [self currentScale];
if (scale > 1.5)
UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, scale);
else
UIGraphicsBeginImageContext(view.frame.size);
[image1 drawInRect:CGRectMake(0, 0, w1, h1)];
[image2 drawInRect:CGRectMake(0, 0, w2, h2)];
UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
【讨论】:
以上是关于在另一个 UIImage 之上添加 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
试图将 UIView 放在 UIImageView 之上以突出显示 UIImage 的一部分
Swift 3 ios:当图像出现时,UILabel 需要出现在 UIImage 之上