呈现图像裁剪界面

Posted

技术标签:

【中文标题】呈现图像裁剪界面【英文标题】:Presenting an image cropping interface 【发布时间】:2010-04-21 02:32:12 【问题描述】:

我正在尝试设计一个用于在 iphone 操作系统中裁剪图像的 UI,并且怀疑我正在努力解决问题。我的目标几乎就是 Tapbots 二人组对 Pastebot 所做的事情。在该应用程序中,它们使源图像变暗,但提供可移动且可调整大小的裁剪视图,并且您正在裁剪的图像位于可缩放的滚动视图中;当您调整或移动底层图像时,裁剪视图会相应调整。

我模拟了一个合成图像,它可以让我了解我所追求的设计,以及我目前如何设置视图层次结构。 alt text http://grab.by/3TN4

我开始使用的方法如下:带有要裁剪的图像的 UIImageView 位于滚动视图中,在 imageview 前面添加了一个带有黑色填充和适当透明度/alpha 设置的普通 UIView。然后我使用一个自定义 UIView,它是更高级别的滚动视图的兄弟,它实现了 drawRect: 方法,并且在大多数情况下调用 CGImageCreateWithImageInRect 来获取与裁剪视图的位置匹配的图像位图部分并绘制它到 CGContext。

在 viewcontroller 中,我使用 UIScrollViewDelegate 方法来跟踪滚动并将这些更改传递给自定义裁剪 UIView,以便它与滚动 contentOffset 保持同步。这么多终于奏效了。但是当我想我应该寻求帮助时,尝试在滚动视图缩放比例变化时保持同步。

寻求建议或指导。我最初的方法似乎比需要做的工作更多。

这可以通过 ImageView 中的遮罩层来完成吗?如果是这样,我将如何设置跟踪以移动和调整裁剪矩形的大小?我使用图层的经验不是零,但到目前为止非常有限。

【问题讨论】:

您是否能够以任何方式实现上述功能。如果是的话,你能告诉我你是怎么做到的吗?请。 你找到可接受的答案了吗? 我没有找到可接受的解决方案。我正在探索的工作已被放弃。 【参考方案1】:

为了记录 - Cocoa Controls 上的现成组件

http://cocoacontrols.com/platforms/ios/controls/imagecropper

【讨论】:

我的代码非常简单,它不考虑图像方向和转换坐标以获得尽可能高的分辨率。【参考方案2】:

我发现,如果您考虑在简单、不可移动的蒙版或裁剪矩形下方操作图像的位置和大小(甚至旋转),而不是尝试移动蒙版或裁剪矩形,则通常会获得更好的裁剪结果 UI在静止的图像之上。尤其是您总是希望裁剪后的图像具有预设的比例和方向。

【讨论】:

我没有考虑过,确实会更容易。谢谢你的建议。

以上是关于呈现图像裁剪界面的主要内容,如果未能解决你的问题,请参考以下文章

在 python lib 中导入和裁剪 jpeg 的快速方法

我应该如何使用 jcrop 在客户端裁剪图像并上传?

在 Android 上缩放图像会使图像呈现在 ImageView 边界之外

扫描图像后自动裁剪

通过 Ajax 将裁剪的图像数据发送到 PHP

裁剪 SVG 的正确方法?