操纵UIImages以获得高分辨率

时间:2014-05-30 00:46:06

标签: ios objective-c uiimage

我正在尝试构建一个允许用户组合两个UIImages的应用程序,使用Core Graphics我没有遇到任何问题。用户能够在当前视图中平移和调整照片大小,并且我将视图的结果组合在图像上下文中。

组合照片的大小很小,因为它只是在视图中保存图像的可见部分。为了避免缩小照片然后缩小它,我是否必须提供视图用户改变照片,然后将这些更改(以正确的比例)应用于全尺寸照片?

我感谢任何帮助,如果以上内容令人困惑,我可以提供一个代码示例,但只是想看看我是否正走在正确的道路上或者是否有更好的方法......

由于

1 个答案:

答案 0 :(得分:0)

  

为避免缩小照片然后缩小照片,我是否必须为用户提供更改照片的视图,然后将这些更改(以正确的比例)应用于完整尺寸的照片?

是的,如果您缩小图像以开始(向用户显示并允许用户操作),那么显然您不能丢弃原件并再次缩小缩小图像。您必须保留原件并对其进行操作。否则,你会永远失去很多像素。

但是,为什么要这么麻烦?显示屏将缩小为您绘制图像的方式。如果您在UIImageView中显示大图像,使用宽高比适合模式,它将在图像视图中绘制,您不必自己进行任何缩小。同样,如果您将CALayer的contents设置为CGImage且图层的contentsGravitykCAGravityResizeAspect,则图像将在图层的边界内绘制。

所有操作(使用CoreGraphics绘图)都是全尺寸的 - 这是操作目标的实际位图。让我们为您执行显示。

(如果你有几十张图片,是的,将它们全部保存在内存中是一种可怕的压力;它可能会使应用程序崩溃。但是一张图片应该没问题。毕竟,这是怎样的照片应用程序有效。)