面具周围的UIImage边框 [英] UIImage border around mask
本文介绍了面具周围的UIImage边框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在使用此代码在我的图像。
I am currently this code to create a mask on my image.
- (UIImage*) maskImage:(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;
}
我现在想在屏蔽输出周围添加2点边框(如来源网址)。我有什么想法可以实现这个目标吗?
I now want to add a 2 point border around the masked output (Like in the source url). Any ideas how I can accomplish this?
谢谢!
推荐答案
请参考以下链接,我也想实现同样的目标。
Please refer to the below link, I also wanted to achieve the same.
请在下面找到代码:
- (UIImage*)mergeImage:(UIImage*)first withImage:(UIImage*)second
{
// get size of the second image
CGImageRef secondImageRef = second.CGImage;
CGFloat secondWidth = CGImageGetWidth(secondImageRef);
CGFloat secondHeight = CGImageGetHeight(secondImageRef);
float offsetwt,offsetht,offset;
offset=20;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
offset=offset/2;
}
offsetht=(secondHeight * (secondWidth+offset)) /secondWidth;
offsetwt=secondWidth+offset;
// build merged size
CGSize mergedSize = CGSizeMake(offsetwt,offsetht);
// capture image context ref
UIGraphicsBeginImageContext(mergedSize);
//Draw images onto the context
[first drawInRect:CGRectMake(0, 0, offsetwt, offsetht)];
[second drawInRect:CGRectMake(offset/2, offset/2, secondWidth, secondHeight) blendMode:kCGBlendModeNormal alpha:1.0];
// assign context to new UIImage
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// end context
UIGraphicsEndImageContext();
return newImage;
}
第一个参数是用于屏蔽的图像,第二个参数是屏蔽图像。您可以根据您的要求设置偏移量。
我希望这可以帮到你。
Where first parameter the image you use for masking and second is the masked image. You may set offset as per your requirement. I hope this helps you.
这篇关于面具周围的UIImage边框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文