Sat*_*zad 5 merge objective-c uiimage ios
我正在开发一个iPhone应用程序,我想合并两个UIImages(leftImage和rightImage).任何人都可以建议如何做到这一点,而他们之间没有线条?
我目前正在这样做:
- (UIImage*)mergeImage:(UIImage*)first withImage:(UIImage*)second
{
// get size of the first image
CGImageRef firstImageRef = first.CGImage;
CGFloat firstWidth = CGImageGetWidth(firstImageRef);
CGFloat firstHeight = CGImageGetHeight(firstImageRef);
// get size of the second image
CGImageRef secondImageRef = second.CGImage;
CGFloat secondWidth = CGImageGetWidth(secondImageRef);
CGFloat secondHeight = CGImageGetHeight(secondImageRef);
// build merged size
CGSize mergedSize = CGSizeMake((firstWidth+secondWidth), MAX(firstHeight, secondHeight));
// capture image context ref
UIGraphicsBeginImageContext(mergedSize);
//Draw images onto the context
[first drawInRect:CGRectMake(0, 0, firstWidth, firstHeight)];
//[second drawInRect:CGRectMake(firstWidth, 0, secondWidth, secondHeight)];
[second drawInRect:CGRectMake(firstWidth, 0, secondWidth, secondHeight) blendMode:kCGBlendModeNormal alpha:1.0];
// assign context to new UIImage
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// end context
UIGraphicsEndImageContext();
return newImage;
}
Run Code Online (Sandbox Code Playgroud)
但它在两个图像之间创建了一条小线.我不想要这个分隔符,就像Splitcam一样.
我怎样才能做到这一点 ?
只需将边缘重叠一个像素即可.
[second drawInRect:CGRectMake(firstWidth-1, 0, secondWidth, secondHeight)
blendMode:kCGBlendModeNormal alpha:1.0];
Run Code Online (Sandbox Code Playgroud)