Save/Load 文件作为字节缓冲区
Save/Load file as byte buffer
所以我有这样一行代码:
func TestImage(){
img, _ := imgio.Open(`input.jpg`)
inverted := effect.Invert(img)
f, _ := os.Create("output.jpg")
defer f.Close()
Encoder := imgio.JPEGEncoder(80)
Encoder(f, inverted)
}
它所做的只是反转图像,这很简单。但是,它只能对本地文件这样做。所以,比如说,如果我在网站 A 上有一张图片需要下载、修改并上传回来,我将不得不
- 将图像下载到本地存储
- 加载它
- 使用那个函数修改
- 保存到本地存储
- 再次将其加载到 POST 功能以进行上传或其他操作
我想知道是否有办法在不读取保存并从本地存储加载的情况下完成这样的任务?比如将图像保存为“假”文件,即字节缓冲区或其他东西。
Package imgio provides basic image file input/output.
如果您不想读取和写入文件,请不要使用此包。直接使用标准库中的镜像包。
package main
import (
"bytes"
"image"
"image/jpeg"
"github.com/anthonynsimon/bild/imgio"
)
func TestImage() {
input := new(bytes.Buffer)
img, err := image.Decode(input)
// TODO: handle error
output := new(bytes.Buffer)
err = jpeg.Encode(output, img, &jpeg.Options{Quality: 80})
}
所以我有这样一行代码:
func TestImage(){
img, _ := imgio.Open(`input.jpg`)
inverted := effect.Invert(img)
f, _ := os.Create("output.jpg")
defer f.Close()
Encoder := imgio.JPEGEncoder(80)
Encoder(f, inverted)
}
它所做的只是反转图像,这很简单。但是,它只能对本地文件这样做。所以,比如说,如果我在网站 A 上有一张图片需要下载、修改并上传回来,我将不得不
- 将图像下载到本地存储
- 加载它
- 使用那个函数修改
- 保存到本地存储
- 再次将其加载到 POST 功能以进行上传或其他操作
我想知道是否有办法在不读取保存并从本地存储加载的情况下完成这样的任务?比如将图像保存为“假”文件,即字节缓冲区或其他东西。
Package imgio provides basic image file input/output.
如果您不想读取和写入文件,请不要使用此包。直接使用标准库中的镜像包。
package main
import (
"bytes"
"image"
"image/jpeg"
"github.com/anthonynsimon/bild/imgio"
)
func TestImage() {
input := new(bytes.Buffer)
img, err := image.Decode(input)
// TODO: handle error
output := new(bytes.Buffer)
err = jpeg.Encode(output, img, &jpeg.Options{Quality: 80})
}