ios - 一张图片到另一张图片大小问题 ios

标签 ios objective-c uiimage overlay

我想将一个小图像添加到另一个主图像,比如角标(Badge)我正在为此编写这段代码,但问题是如果背景图像很小,那么水印就会显示得非常大。请提供任何建议。

[_productImg sd_setImageWithURL:[NSURL URLWithString:imgUrl]
                   placeholderImage:nil
                          completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

                              if (image.size.width > 0 && img.isdefaultImage) {
                                  UIImage *watermark = [UIImage imageNamed:@"is_default_big"];
                                  CGFloat scale = image.scale;
                                  UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
                                   [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
                                  [watermark drawInRect:CGRectMake(image.size.width - watermark.size.width, 0, watermark.size.width, watermark.size.height)];
                                  UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
                                  UIGraphicsEndImageContext();
                                  _productImg.image = result;

                              }

                              [_spinner stopAnimating];
                              [_spinner removeFromSuperview];

                          }];


      });

Check this

enter image description here

最佳答案

由于您的图像显然有不同的尺寸,但您似乎将它们缩放到(大致)相同的尺寸,因此您需要缩放您的角标(Badge)。

尝试这样的事情:

// Add this line
CGFloat desiredBadgeSize = 0.2; // Badge is 20% of image height

// Change these lines
CGFloat scale = image.size.height / watermark.size.height * desiredBadgeSize;
[watermark drawInRect:CGRectMake(image.size.width - watermark.size.width * scale, 0, watermark.size.width * scale, watermark.size.height * scale)];

上面的代码假定您将图像缩放到设备上的相同高度。

另一种通常更快的方法是将角标(Badge)放在 UIImageView 中,然后将其添加到包含图像的 View 中。这样您仍然拥有原始图像,并且可以在需要时轻松移除角标(Badge)。

关于ios - 一张图片到另一张图片大小问题 ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48237658/

相关文章:

ios - Xcode 4 UI 构建应用程序正常,但命令行 xcodebuild 在代码签名时失败

iphone - 为什么我无法通过 MFMailComposeViewController 发送邮件?

iphone - 使用AVPlayer进行灵敏的电影擦洗

IOS - 获取联系人电话用于通讯录

objective-c - UINavigationBar 后退按钮可拉伸(stretch)图像太长

ios - 使用 isKindOfClass 进行多个类检查来简洁地评估对象

ios - 如何在tableview单元格中重复图像?我只想重复5张图像,并且只应包含100行

ios - 读写属性是否需要@synthesize?

iphone - 如何处理 -hd 文件

ios - UIImage(文件内容:) returning nil despite file existing in caches directory