关于合并覆盖图像与捕获图像ios的问题

我正在开发相机应用程序,我把一个覆盖图像,当我捕获图像。 我正在做的处理结合图像使用下面的代码,但徽标的位置是不正确的。

- (UIImage*)addOverlayToBaseImage:(UIImage*)baseImage { UIImage *newImage = [self CombineImage:baseImage]; return newImage; } -(UIImage *)CombineImage :(UIImage*)myCapturedImage{ CGSize finalSize = [myCapturedImage size]; CGSize overlaySize = [overlayGraphic size]; UIGraphicsBeginImageContext(finalSize); [myCapturedImage drawInRect:CGRectMake(0,0,finalSize.width,finalSize.height)]; CGFloat xScaleFactor = finalSize.width / 320; CGFloat yScaleFactor = finalSize.height / 480; [overlayGraphic drawInRect:CGRectMake(30 * xScaleFactor, 100 * yScaleFactor, overlaySize.width * xScaleFactor, overlaySize.height * yScaleFactor)]; UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return combinedImage; } 

我从这个URL [ http://www.musicalgeometry.com/?p=1681]的参考,并使用该捕获相机视图和onverlay在图像

如果我的代码有任何错误,请指导我。

谢谢。

尝试这个…

 - (UIImage*)addOverlayToBaseImage:(UIImage*)baseImage{ UIImage *overlayImage = [UIImage imageNamed:@"img.png"]; CGPoint topCorner = CGPointMake(0, 0); CGSize targetSize = CGSizeMake(320, 480); CGRect scaledRect = CGRectZero; CGFloat scaledX = 480 * baseImage.size.width / baseImage.size.height; CGFloat offsetX = (scaledX - 320) / -2; scaledRect.origin = CGPointMake(offsetX, 0.0); scaledRect.size.width = scaledX; scaledRect.size.height = 480; UIGraphicsBeginImageContext(targetSize); [baseImage drawInRect:scaledRect]; [overlayImage drawAtPoint:topCorner]; UIImage* result = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return result; } 

请尝试replace这一行:

  [overlayGraphic drawInRect:CGRectMake(30 * xScaleFactor, 100 * yScaleFactor, overlaySize.width * xScaleFactor, overlaySize.height * yScaleFactor)]; 

用这条线

 [overlayGraphic drawInRect:CGRectMake(0, 0, finalSize.width, finalSize.Height)];