我使用Rackspace CloudFiles存储图像。现在我想在浏览器中将其显示为图库。有没有办法从Rackspace一侧从我的文件生成缩略图?
答案 0 :(得分:2)
虽然使用Rackspace或OpenStack Swift库无法做到这一点,但您可以通过编程方式为图像创建缩略图并上传它们。
例如,如果您使用的是Python,则可以使用Pillow(PIL)创建缩略图和pyrax to upload。你需要pip install
这两个。在安装Pillow之前,请确保为libjpeg和libpng安装系统软件包(或按照Pillow的installation documentation中的说明进行操作。)
import os
from StringIO import StringIO
import pyrax
from PIL import Image
# Authenticate with Rackspace
pyrax.set_setting("identity_type", "rackspace")
pyrax.set_credential_file(os.path.expanduser("~/.rax_creds"))
cs = pyrax.cloudservers
cf = pyrax.cloudfiles
# Get the container we'll be uploading to
gallery = cf.get_container("gallery")
# Arbitrarily setting a thumbnail size
maxwidth=64
maxheight=64
infile = os.path.expanduser("~/mommapanda.jpg")
# We'll use StringIO to simulate a file
out = StringIO()
im = Image.open(infile)
im.thumbnail((maxwidth,maxheight), Image.ANTIALIAS)
im.save(out, "PNG")
# Back to the start of our "file"
out.seek(0)
gallery.store_object("mommapanda.thumb.png", out.read(),
content_type="image/png")
上面的代码变成了这个大图像
进入此缩略图
并将其上传到CloudFiles上名为gallery的容器。