我正在使用golang作为一个RESTFUL API。我有一个iOS应用程序,然后用户的上传照片将图像发送到golang,它处理图像并将其上传(到Amazon S3),因此在我的本地目录中找不到图像。我在使用Formfile之前阅读图像等图像
func s3ImageUpload(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
file, handler, err := r.FormFile("file")
if err != nil {
fmt.Println("Error Uploading Image")
return
}
// Rest of Code that uploads Image to my Amazon s3 Bucket no issues here
}
上面的代码的问题是,有时像4MB的图像正在上传,那太大,所以我有一个新的包来调整图像的大小 https://www.github.com/disintegration/imaging. 。我昨天发布了这个,并收到了很大的帮助,并设法上传在我的照片上传 当地的 目录,但是我需要查找如何在外部加载图像。我唯一的问题是 打开方法 这个包裹并根据Go-Docs这是该方法的解释
Func开放
func Open(filename string) (image.Image, error)
打开从文件中加载图像
所以,如果我在我的本地目录中有一个图像并且想要调整它的大小我可以执行此操作
file_open,err := imaging.Open("/Users/IH/Documents/pictures/BigTurtle.jpg")
if err != nil {
print("Imaging Open error")
}
new_image := imaging.Resize(file_open, 300, 300, imaging.Lanczos)
//代码的其余部分向Amazon S3发送新映像,它正常工作,即所有工作,但在图像从其他人的IOS设备外部即将到来,所以我不能放入图像路径。我试图这样做
file_open,err := imaging.Open(handler.filename)
和
file_open,err := imaging.Open("file")
但它不存在未找到图像或目录,我是Golang的新手,但有些方式可以让我可以将外部文件发送到映像中。我需要一个,因为方法的第1个参数`inmaging.resize()是类型的 Image.Image. 这是与之相同的类型 映像 。不幸的是 r.formfile(“文件”) 是multipart.file,不能调整大小,至少不是我有限的知识。任何帮助都会很棒。