编辑图片/原位”;移动“;(a la脸书个人资料图片编辑)


Editing a picture / inplace "moving" (a la Facebook profile picture editing)

facebook如何对个人资料图片进行就地"移动"?

要了解我在说什么,转到:http://www.facebook.com/editprofile.php?sk=picture-->编辑缩略图-->请注意,您可以移动缩略图。

他们称之为"ProfilePicSquareEditor"(他们的源代码很难获得)

这不是Facebook所使用的,但它很好地实现了这一点http://odyniec.net/projects/imgareaselect/

我目前正在几个项目中使用它。

很明显,有一堆javascript可以控制裁剪窗口的拖动大小,如果你强制执行某个宽高比(或范围),这可能会变得有点复杂(或至少乏味),但就HTML而言,它只是一个黑色背景div,完整图像位于opacity: .5的顶部(这创建了深色背景图像),然后同一图像的另一个副本位于CCD_ 2div(在第一个div之外)中,使其与第一个图像正确对齐。响应调整大小句柄的拖动事件的处理程序不断更新绝对定位div("裁剪窗口")的topleftwidthheight属性,以及其中"前景"图像的topleft属性(转换为负数),以使其与背景图像对齐。

javascript还将跟踪每个角的位置,因此当用户接受更改时,这些点可以转换为像素坐标(考虑任何缩放),并提供给后端的任何图像处理库。