gpt4 book ai didi

iOS UIImageView 剪辑/蒙版图像

转载 作者:行者123 更新时间:2023-11-28 22:42:46 26 4
gpt4 key购买 nike

基本上,我正在创建一个包含两个图像的 View 。图像一显示在占据 View 左上角的直角三角形中,图像二显示在占据 View 右下角的直角三角形中。

想象一下沿对角线切割正方形,结果的每一半中存在不同的图像。

我已经阅读了很多关于 mask 的内容,但我不想使用其他图像来遮盖这些图像。

我正在寻找一种方法来给它 3 个点,形成那个三角形,然后让它以这种方式裁剪图像。

我觉得这在 Coregraphics 中可能很容易做到,我只是错过了我认为的调用。

非常感谢任何帮助!

最佳答案

这是一种方法,在图像上下文中使用剪切路径。该示例适用于 256 x 256 的图像大小,但您应该能够轻松地根据需要调整它。

UIGraphicsBeginImageContext(CGSizeMake(256, 256));
CGContextRef context = UIGraphicsGetCurrentContext();
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, 256);
CGContextConcatCTM(context, flipVertical);
CGContextBeginPath(context);
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 0, 256);
CGContextAddLineToPoint(context, 256, 256);
CGContextClosePath(context);
CGContextSaveGState(context);
CGContextClip(context);
CGContextDrawImage(context, CGRectMake(0, 0, 256, 256), [image1 CGImage]);
CGContextRestoreGState(context);
CGContextBeginPath(context);
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 256, 0);
CGContextAddLineToPoint(context, 256, 256);
CGContextClosePath(context);
CGContextSaveGState(context);
CGContextClip(context);
CGContextDrawImage(context, CGRectMake(0, 0, 256, 256), [image2 CGImage]);
CGContextRestoreGState(context);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); // image contains the result
UIGraphicsEndImageContext();

关于iOS UIImageView 剪辑/蒙版图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com