如何在iOS中将一张图像合并到另一张图像的中心?
Posted
技术标签:
【中文标题】如何在iOS中将一张图像合并到另一张图像的中心?【英文标题】:How to merge one image in center of the other image in iOS? 【发布时间】:2015-10-28 13:18:19 【问题描述】:我有一个图像是视频的缩略图。我想在该缩略图图像的中心添加播放图像,以便我可以识别它是一个视频。请告诉我该怎么做。我正在使用下面的代码合并图像,但这对我不起作用。
- (UIImage *) getMergeImage:(UIImage *)parentImage childImage:(UIImage *)childImage
UIImage *bottomImage = parentImage;//background image
UIImage *image = childImage;//foreground image
CGSize newSize = CGSizeMake(bottomImage.size.width, bottomImage.size.height);
UIGraphicsBeginImageContext(newSize);
// Use existing opacity as is
[bottomImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// Apply supplied opacity if applicable
// Change xPos, yPos if applicable
[image drawInRect:CGRectMake(18,18,36,36) blendMode:kCGBlendModeNormal alpha:1.0];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
【问题讨论】:
你想把子图像放在父图像的中心吗? 是的。这正是我想要的 这里 x & y 是 18,18 我怎样才能使它成为图像的中心。 @deepakkumar 我的代码有帮助吗?? 【参考方案1】:如果你不想使用两个 ImageViews
- (UIImage *) getMergeImage:(UIImage *)parentImage childImage:(UIImage *)childImage
CGSize size = CGSizeMake(parentImage.size.width, parentImage.size.height);
UIGraphicsBeginImageContext(size);
[image1 drawInRect:CGRectMake(0,0,size.width, size.height)];
[image2 drawInRect:CGRectMake( ((size.width - childImage.size.width) / 2 ),((size.height - childImage.size.height) / 2 ),image2.size.width, image2.size.height)];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return finalImage;
【讨论】:
image1
和 image2
变量的意义何在?它实际上使该方法的其余部分不清楚。坚持原来的 parentImage
和 childImage
变量。
更新了代码以使用 parentImage 和 childImage 代替 image1 和 image2。
图1和图2?【参考方案2】:
我修复了 image1 和 image2 并添加了 autoreleasepool 以避免内存问题:
- (UIImage *)getMergeImage:(UIImage *)parentImage childImage:(UIImage *)childImage
@autoreleasepool
CGSize size = CGSizeMake(parentImage.size.width, parentImage.size.height);
UIGraphicsBeginImageContext(size);
[parentImage drawInRect:CGRectMake(0,0,size.width, size.height)];
[childImage drawInRect:CGRectMake( ((size.width - childImage.size.width) / 2 ),((size.height - childImage.size.height) / 2 ),childImage.size.width, childImage.size.height)];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return finalImage;
【讨论】:
以上是关于如何在iOS中将一张图像合并到另一张图像的中心?的主要内容,如果未能解决你的问题,请参考以下文章