我想让一个网站上的用户上传图像,并在它上面写一些文字。此外,他们应该能够裁剪/缩放/移动图像和文本。对于那些东西,我可以用jQuery来做。
在他们按照他们想要的方式制作了图像之后,有没有一种方法可以截取图像的屏幕截图(使用PiL)并将其保存在服务器上?
做这件事的最佳/适当方式是什么?
发布于 2009-03-23 15:59:11
对图片进行“截图”既不是最好的,也不是正确的做法。要截图,您需要在客户机上执行代码,这在网站场景中是“不可能的”。
看看lolcat builder (我现在想不出更严肃的例子了;)。每次你点击“预览”按钮,图像src就会更新为一个包含文本、样式和位置的url。该请求由服务器处理,该服务器将生成要显示的新图片。
发布于 2009-03-23 15:58:29
我假设你在服务器端安装了Python。
imo的最好方法是以某种方式从客户端‘获取’所有编辑参数,然后使用PIL重新渲染。
更新:我将如何在服务器端做到这一点,你需要一个网址来处理帖子。在客户端,(在每次编辑之后)向该url发送带有编辑参数的post。我认为这不是一个简单的解决方案。
也许如果你不使用PIL来渲染最终的图像,而只是记住参数,来自客户端的每个视图都可以渲染它自己?
发布于 2009-03-23 16:55:34
PIL在客户端不可用。因此,除非像Jack Ha建议的那样,您打算将图像编辑的所有指令上传到服务器并重新执行它们,否则这不是一种选择。我会避免这样做,因为您需要在客户端和服务器上实现相同的编辑例程,从而使代码库的大小加倍。(如果您的服务器端代码是用Javascript编写的,可能会有意义,这样绘图代码就可以重用。)
取而代之的是,寻找一个能够在客户端完成图像处理的Javascript库,并让浏览器上传最终的、经过编辑的图像。我不熟悉该区域中的选项,但有一个快速的谷歌搜索turned this up,它使用画布元素来存储像素数据。
https://stackoverflow.com/questions/673725
复制相似问题