Ios 高分辨率图像的处理

Ios 高分辨率图像的处理,ios,objective-c,uiimage,Ios,Objective C,Uiimage,我正在尝试构建一个应用程序,允许用户组合两个UIImage,通过使用核心图形,我没有问题。用户可以在当前视图中平移和调整照片大小,我正在将视图的结果合并到图像上下文中 组合照片的大小很小,因为它只是将图像的可见部分保存在它所在的视图中。为了避免缩小照片,然后将其放大,我是否必须为用户提供一个视图来更改照片,然后将这些更改(以正确的比例)应用于全尺寸照片 我感谢任何帮助,如果上面的内容让人困惑,我可以提供一个代码示例,但我只是想看看我是否走对了路,或者是否有更好的方法 谢谢 为了避免缩小照片,然后

我正在尝试构建一个应用程序,允许用户组合两个UIImage,通过使用核心图形,我没有问题。用户可以在当前视图中平移和调整照片大小,我正在将视图的结果合并到图像上下文中

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

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

谢谢

为了避免缩小照片,然后将其放大,我是否必须为用户提供一个视图来更改照片,然后将这些更改(以正确的比例)应用于全尺寸照片

是的,如果首先收缩图像(向用户显示并允许用户操作),则显然不能丢弃原始图像并再次放大收缩图像。你必须保留原件并对其进行操作。否则,将永远丢失大量像素

但是,为什么要麻烦呢?显示器将缩小为您绘制图像的方式。如果在UIImageView中使用aspect fit模式显示一个大图像,它将在图像视图中绘制,您不必自己进行任何收缩。类似地,如果将CALayer的
内容
设置为CGImage,并且层的
内容重力
kCAGravityResizeAspect
,则图像将在层的边界内绘制

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


(如果你有几十张图片,是的,将它们全部保存在内存中会是一种可怕的压力;这可能会使应用程序崩溃。但是一张图片应该可以。毕竟,这就是照片应用程序的工作方式。)

好的,为了确保我正确理解,我构建这些图片的方式,用户实际上正在转换ImageView,但我应该让用户操纵实际图像,让ImageView处理缩放照片以显示的问题?再次感谢,我本来会投票,但我还没有代表。你不能投票,但你可以接受(勾选),这会更有价值。:)但你当然没有义务这么做你的第二个问题是很难回答没有看到你的代码(即确切地说你在做什么)。但是我认为,如果,比方说,我让用户通过旋转图像视图来实时旋转图像,我会让用户实时旋转图像视图(这仅仅是一个绘图转换),然后我会将相同的旋转应用于实际的原始图像(通过使用转换重新绘制)。好的,是的,我想我明白了。。。我正是这样做的,通过绘制变换,让他们在另一个视图中动态缩放、旋转和平移图像视图。因此,我们的想法是记录转换并在提交后应用于实际(更大)的原始图像?再次感谢,这次我接受了答案。这就是我要做的,这样就不必在整个手势过程中不断重画原始图像。事实上,你可以真的很酷,存储原始图像和所有应用的变换,从而允许一切都是可撤销的。完美!再次感谢你,马特。