【问题标题】:Is it possible to combine/layer images using UIImageView and still keep their transparency?是否可以使用 UIImageView 组合/分层图像并仍然保持其透明度?
【发布时间】:2013-04-24 01:55:32
【问题描述】:

我正在尝试将一些灰度图像与不同的 alpha 相结合,以创建分层效果。我正在将图像加载到 UIImageView 中,并且在屏幕上看起来与预期的一样。但是,当我保存组合图像时,只有顶层被保存;是否可以创建和保存组合图像层?

我附上了图片的链接 - 一个是图像应该是什么样子的屏幕截图(分层),另一个是最终保存的简单单值(非分层)。

https://dl.dropboxusercontent.com/u/8263889/good.png - 这就是我想要的 https://dl.dropboxusercontent.com/u/8263889/bad.png - 这就是发生的事情。

想法?

【问题讨论】:

    标签: ios xcode uiimageview calayer alpha


    【解决方案1】:

    您是否要保存到 UIImage?如果是这样,试试这个。

    + (UIImage *)imageWithView:(UIView *)view
    {
      UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
      [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    
      UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
    
      UIGraphicsEndImageContext();
    
      return img;
    }
    

    【讨论】:

    • 这几乎就是我拥有的代码。我更改了几行不同但似乎没有任何区别...
    • @marina 您的 UIView 是否包含您需要的所有图像(作为子视图)?
    • 它包含所有图像作为 UIImageView 的层。下面是在屏幕上创建合成图像的代码:(父 UIView 有一个 UIImageView(出口 imageView)保存图像:
    • UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; UIImageView *newImgView = [[UIImageView alloc] initWithFrame:self.imageView.frame]; CGRect frame = self.imageView.frame; self.imageView.layer.opacity = .99;
    • if (self.imageView.image == nil){self.imageView.image = image;self.imageView.layer.frame = frame;}`else`{ // add a layered imagenewImgView.image = image;newImgView.layer.frame = frame;[self.imageView.layer addSublayer:newImgView.layer];@98765433
    猜你喜欢
    • 1970-01-01
    • 2012-04-25
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多