呈现图像裁剪界面
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 的快速方法