【问题标题】:How to save a rotated image which was stored in GAE Blobstore?如何保存存储在 GAE Blobstore 中的旋转图像?
【发布时间】:2016-01-06 12:30:05
【问题描述】:

我想旋转并保存已存储在 blobstore 中的图像。为此,我尝试使用images.Image.rotate method

img = images.Image(blob_key=image.blob)
img.rotate(180)
final_image = img.execute_transforms(output_encoding=images.PNG)

我不知道如何将旋转后的图像再次保存到 blobstore。

【问题讨论】:

  • 我还没有使用 GCS,所以我不是 100% 确定,但我会尝试这篇文章中的方法:stackoverflow.com/questions/27019626/…
  • @DanCornilescu 我们目前使用的是 blobstore 而不是 GCS,

标签: python google-app-engine


【解决方案1】:

转换后的image 只是字节的集合,您可以将它们写回云存储 - 作为新对象或覆盖现有对象(例如,cloudstorage.open 使用 Python GS 客户端将模式设置为“w”) .

【讨论】:

  • 我的答案是一样的——转换后的图像是字节。如果您愿意,可以将它们保存到 Blobstore,尽管我建议您转移到 GCS。
  • 是的,我设法使用您的方法存储了转换后的图像。但是它仍然是二进制/八位字节形式。我正在努力将其转换为 jpeg。我的 BLobstore 查看器无法内联显示图像,因为它不是 jpeg 格式。但是如果我下载并在图像查看器中查看它,它看起来很棒(img_in_rotated_form)。,
  • 当然——它是一个blob。将此 blob 返回到浏览器时,您需要设置正确的标头,包括“Content-Type”。您还可以设置文件名并使用“Content-Disposition”标头告诉浏览器是渲染还是保存文件。
  • 知道stackoverflow.com/a/34653324/3297613 。但是不知道如何设置文件名..
【解决方案2】:

过去可以使用 Files API, which is now deprecated 写入 blobstore。

您可以改用 GCS 来写入图像(GCS is recommended over Blobstore 无论如何)。

如果你愿意,你仍然可以保留the blobstore API with GCS。我认为应该可以为您的用户透明地混合 blobstore 和 GCS,这样您就不必将所有现有图像从 blobstore 迁移到 GCS。

【讨论】:

  • I think it should be possible to even mix blobstore and GCS 真的吗?
  • 有没有办法在 python 中像 stackoverflow.com/a/13731894/3297613 那样做?
  • 那是 Files API(注意答案是 3 岁)。
猜你喜欢
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多