Python模块imageop已弃用:在CGI中创建缩略图很有用!还有其他方法吗?
Python的imageop模块在CGI中非常有用,可以自动从上传的图片中创建缩略图,但根据它的文档,从2.6版本开始就不再推荐使用了。
我在一个共享服务器上工作,所以我不能自己安装PIL、imagemagick或者类似的工具。我还有什么其他方法可以从上传的图片中创建缩略图呢?因为JavaScript在客户端是做不了这个的,除非使用canvas,对吧?
1 个回答
2
你说得对,使用JavaScript是无法做到这一点的——除非把整个图片内容传回浏览器。
至于Python,"被弃用"并不意味着它被删除了——在Python 2.7中仍然可以使用。而且,由于Python 2.7会被维护得差不多“永远”,因为大家需要一些年头才能完全转向Python 3.x,所以你可以放心,imageop会继续可用。
关于安装PIL——这是“推荐的方式”——你不需要以管理员身份安装它,可以作为普通用户安装。这意味着:你需要有命令行访问权限,或者至少有文件部署的权限,安装到你有写入权限的目录,并相应地设置PYTHONPATH。
不过,以这种方式安装PIL可能会有点棘手,虽然是可以做到的——在最坏的情况下(如果你只有文件写入权限,但没有命令行权限),你需要在你这边模拟运行环境(例如,安装一个虚拟机,里面的库版本和你服务器上的一致),然后在那边构建,再把文件移动到服务器上。
如果你想找一种纯Python处理图片的方法,可以看看PNGCanvas,但它没有图片缩放的功能。(当然,它只能处理PNG文件。)
另一个选择是利用网络服务来为你执行图片操作——你可以把整个图片发送到另一台服务器上的应用程序,然后只获取缩略图。搜索“免费图片网络服务”会有很多结果。