【发布时间】:2014-01-26 17:05:11
【问题描述】:
我目前组合 UIImages 的方法来自这个answer on SO,以及this 关于调整 UIImage 大小与纵横比的流行问题。我目前的问题如下:
我有一个名为 pictureImage 的 UIImage 是用相机拍摄的,它的标准尺寸为 2448*3264。我还有一个名为self.annotateView 的UIImageView,它有一个320*568 的框架,用户可以在其中绘制和注释图片。当我在UIImageView 中展示pictureImage 时,我将图像展示设置为Aspect Fill,以便它占据整个iPhone 屏幕。当然这意味着pictureImage 的一部分在左右两边都被切断了(实际上两边都是304 像素),但这是故意的。
我的问题是,当我将 UIImages pictureImage 和 annotateView.image 组合到 320*568 的新维度时,我的组合图像通过水平拉伸它改变了 annotateView.image 的原始方面。这很奇怪,因为新维度与 annotateView.image 的原始维度完全相同。
这是结果的样子 -
在组合 UIImages 之前
合并图片后
请注意,底层图片未拉伸。但是,annotateView.image 仅水平拉伸,而不是垂直拉伸。
这是我合并 UIImages 的代码。
//Note: self.firstTakenImage is set to 320*568
CGSize newSize = CGSizeMake(self.firstTakenImage.frame.size.width, self.firstTakenImage.frame.size.height);
UIGraphicsBeginImageContext(newSize);
[self.firstTakenImage.image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
[self.drawView.image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
【问题讨论】:
-
is firstTakenImage 是从 cam 中捕获的快照吗?最初有 2048*3264。
标签: ios iphone objective-c uiimage