image - Go + Appengine Blobstore,调整图片上传大小

标签 image google-app-engine go

我正在努力了解 Go + Appengine。我一直在使用 Blobstore 来存储用户上传的图片。无论如何,我可以从 BlobStore 下载图像并对其进行操作吗?

或者有其他解决方案吗?

image lib有点受限。我还想将其他格式转换为 jpeg。

最佳答案

是的,您可以从 blobstore 中提取文件并利用 Go 1 附带的图像包,包括 image/drawimage/jpeg .参见 The Go image package概览和 image/draw blog post .假设您已经拥有 BlobInfo对于要操作的图像,可以通过将嵌入的 BlobKey 传递给 blobstore.NewReader 来获取其原始数据。 ,给你一个 io.Reader 对象。将其传递给例如png.Decode得到一个image.Image .做任何你喜欢的操作,然后将它保存回 blobstore,从 blobstore.Create 获取一个 Writer交给jpeg.Encode .最后调用 blobstore.Close 和 .Key 获取新的 BlobKey 以保存在数据存储中。

如果您想进行更复杂的操作,可以使用几个纯 Go 库,您可以将它们与您的应用一起上传并与 image.Image 一起使用。参见例如 graphics-goLibraries Written in Go 的“图像和图形”部分.

关于image - Go + Appengine Blobstore,调整图片上传大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647194/

相关文章:

jquery - 图片适合缩略图

java - appengine java 中的线程/后端

jquery - 如何使用AJAX实现页面实时更新?

go - Leader election - Pod 没有选择作为领导者

mongodb - 在 Go 中将任何编码转换为 UTF 8

Go 如何在我的 html 页面上使用 JavaScript 代码

image - 将 tiff 转换为模式 1 位图

html - Bootstrap - 图像被拉伸(stretch)到 div 的宽度

python - OpenCV - 在 Python 中读取 16 位 TIFF 图像(sentinel-1 数据)

java - App Engine 数据存储中的空列表 : Java vs Python