菜鸟教程小白 发表于 2022-12-13 17:16:23

iphone - 如何将 UIImageView 裁剪为自定义形状


                                            <p><p>用户是否可以在他们希望裁剪到的 <code>UIImageView</code> 位周围画一条虚线(圆圈),然后为 <code>UIImageView</code>调整到这些点?有点像 Photoshop 中的套索/选框效果:</p>

<p> <img src="/image/qUJrg.jpg" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>更新:从 iOS 8.x 开始,UIImageView 提供了一个 <code>maskView</code> 属性。只需准备一个带有一些不透明像素的图像,使用该蒙版图像创建另一个 ImageView ,并将此蒙版 ImageView 设置为 maskView。 mask 图像中的不透明像素将是基础图像中显示的像素。</p>

<pre><code>    UIImageView *maskView = [ initWithImage:];
    maskView.frame = imageView.bounds;
    imageView.maskView = maskView;
    // imageView will be masked by maskView
</code></pre>

<p>.</p>

<p><strong>原答案</strong></p>

<p>还有很多工作要做,但这里有一个高级大纲:</p>

<ol>
<li>创建一个将成为蒙版的空图像</li>
<li>根据用户输入在该图像中构建路径</li>
<li>填充路径以将其变成蒙版</li>
<li>将 mask 应用到 imageview 的图像</li>
</ol>

<p>创建图像:这里的一个简单想法是在您的项目中附带一张黑色图像。它的大小应与用户可以选择的最大区域相匹配。将图像读入内存 (<code>UIImage imageNamed:</code>) 并通过调用 <code>UIGraphicsBeginImageContext</code> 将其设置为绘图上下文。</p>

<p>创建路径:( <a href="https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_paths/dq_paths.html" rel="noreferrer noopener nofollow">see apple docs</a> )。当用户开始抚摸该区域时,调用 <code>CGContextBeginPath</code>,然后跟随用户手势,对触摸进行采样并通过重复调用 <code>CGContextMoveToPoint</code> 作为 touchesMoved 添加小片段。</p>

<p>创建蒙版:要将路径变成蒙版,您需要黑色背景和白色填充路径。如果您从黑色图像开始,您只需要进行填充。请参阅相同的苹果指南。</p>

<p>最后,您将把这个 mask 应用到 imageView 的图像上。 <a href="http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html" rel="noreferrer noopener nofollow">Here&#39;s a decent reference</a>为此。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 如何将 UIImageView 裁剪为自定义形状,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/13015676/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/13015676/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 如何将 UIImageView 裁剪为自定义形状