首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用蒙版裁剪图像

使用蒙版裁剪图像
EN

Stack Overflow用户
提问于 2013-12-06 18:15:32
回答 2查看 2K关注 0票数 2

我的要求是使用maskImage裁剪图像。我能够裁剪图像,但不是在确切的比例如预期。我在谷歌上搜索并试图实现它,但不幸的是没有得到结果,因为expected.This是裁剪图像后得到的结果。

下面是我使用的代码。

代码语言:javascript
复制
- (UIImage*) maskImage1:(UIImage *) image withMask:(UIImage *) mask
{
CGImageRef imageReference = image.CGImage;
CGImageRef maskReference = mask.CGImage;

CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskReference),
                                         CGImageGetHeight(maskReference),
                                         CGImageGetBitsPerComponent(maskReference),
                                         CGImageGetBitsPerPixel(maskReference),
                                         CGImageGetBytesPerRow(maskReference),
                                         CGImageGetDataProvider(maskReference),
                                         NULL, // Decode is null
                                         YES // Should interpolate
                                         );

CGImageRef maskedReference = CGImageCreateWithMask(imageReference, imageMask);
CGImageRelease(imageMask);

UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
CGImageRelease(maskedReference);

return maskedImage;
}

谢谢..!

EN

回答 2

Stack Overflow用户

发布于 2013-12-06 18:34:30

备用

使用CALayers也可以达到同样的效果,在我看来,这一点很明显。

代码语言:javascript
复制
- (UIImage*) maskImage1:(UIImage *) image withMask:(UIImage *) mask
{
    UIImage* maskedImage = image;

    CALayer *maskLayer = [CALayer layer];

    maskLayer.frame = maskedImage.bounds;
    maskLayer.contents = (__bridge id) mask.CGImage;

    maskedImage.layer.mask = maskLayer;

    return maskedImage;
}

可能是一个解决方案

您的掩码UIImage的contentScale可能是错误的

代码语言:javascript
复制
mask.layer.contentScale = [UISCreen mainScreen].scale;

您还可以在执行CGImageMaskCreate之前强制设置蒙版的大小:

代码语言:javascript
复制
mask.frame = image.bounds;
票数 1
EN

Stack Overflow用户

发布于 2015-01-17 21:40:07

也许你已经解决了这个问题,但由于我遇到了同样的问题,我解决了它,我将解释解决方案:蒙版应用于照片的真实大小,在我的例子中是3264x2448,逻辑上它不是iphone屏幕大小,所以当蒙版应用到图像上时,它变得非常小。我解决了在photoshop上创建一个3264x2448大小的图层,并缩放蒙版以保持与iphone屏幕完全相同的方式。

我遇到的另一个问题是,当我拍摄照片时(我正在使用相机),图像有另一个方向,然后我必须将蒙版转到这个photoshop图层上图片的相同方向。修改方向会改变边,现在的高度是宽度,反之亦然,所以,当我必须计算比例时,我必须注意哪一边应该相乘以获得正确的比例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20421323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档