【问题标题】:Draw on UIImage to erase and see through, revealing the UIImage layer underneath [duplicate]在 UIImage 上绘制以擦除并透视,露出下面的 UIImage 层[重复]
【发布时间】:2013-07-25 08:52:12
【问题描述】:

过去几天我一直在寻找方法,但我被困住了。 在我的应用程序的某个点,我想要两个 UIImage 重叠,当我开始在第一层上“绘制”时,它会擦除​​图像并让我们看透,以便能够显示下面的内容。

我不知道我在核心图形方面的方式,在网上花了几天时间后,我想知道这是否可能。

有没有人可以帮助我,或者指出我应该遵循的方向?

任何帮助将不胜感激。

祝你有美好的一天。

【问题讨论】:

  • 我之前回答过类似的问题。这将是 helpful 给你。
  • 谢谢你们,Amar,Nitin,你们给了我希望.. :-) 我会尝试这些然后回来。

标签: ios uiimage core-graphics draw


【解决方案1】:

创建一个 ScratchView 类并将您的 Scratch 图像放入 initMethod 中,例如:-

- (id)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
    if (self) {
        scratchable = [UIImage imageNamed:@"scratchable.jpg"].CGImage;
        width = CGImageGetWidth(scratchable);
        height = CGImageGetHeight(scratchable);
        self.opaque = NO;
        CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceGray();

        CFMutableDataRef pixels = CFDataCreateMutable( NULL , width * height );
        alphaPixels = CGBitmapContextCreate( CFDataGetMutableBytePtr( pixels ) , width , height , 8 , width , colorspace , kCGImageAlphaNone );
        provider = CGDataProviderCreateWithCFData(pixels);


        CGContextSetFillColorWithColor(alphaPixels, [UIColor blackColor].CGColor);
        CGContextFillRect(alphaPixels, frame);

        CGContextSetStrokeColorWithColor(alphaPixels, [UIColor whiteColor].CGColor);
        CGContextSetLineWidth(alphaPixels, 20.0);
        CGContextSetLineCap(alphaPixels, kCGLineCapRound);

        CGImageRef mask = CGImageMaskCreate(width, height, 8, 8, width, provider, nil, NO);
        scratched = CGImageCreateWithMask(scratchable, mask);

        CGImageRelease(mask);
        CGColorSpaceRelease(colorspace);
    }
    return self;
}

并创建第二个视图类用于在 Scratch 之后显示背景图像

下面这个例子对你很有用:-

https://github.com/oyiptong/CGScratch

【讨论】:

  • 好吧,我去看看你的github repo,看来它真的对我有帮助。谢谢你的帮助,真的很感激。 :-)
猜你喜欢
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
相关资源
最近更新 更多