登录
首页 >  Golang >  Go问答

去调整图像大小

来源:Golang技术栈

时间:2023-04-28 21:59:06 435浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《去调整图像大小》,主要介绍了golang,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我在这里使用 Go resize 包:https ://github.com/nfnt/resize

  1. 我正在从 S3 中提取图像,例如:

    image_data, err := mybucket.Get(key) // this gives me data []byte

  2. 之后,我需要调整图像大小:

    new_image := resize.Resize(160, 0, original_image, resize.Lanczos3) // problem is that the original_image has to be of type image.Image

  3. 将图像上传到我的 S3 存储桶

    err : = mybucket.Put('newpath', new_image, 'image/jpg', 'aclstring') // problem is that new image needs to be data []byte

如何将数据转换[]byte为 --->image.Image并返回 ----> 数据[]byte

正确答案

阅读http://golang.org/pkg/image

// you need the image package, and a format package for encoding/decoding
import (
    "bytes"
    "image"
    "image/jpeg" // if you don't need to use jpeg.Encode, use this line instead 
    // _ "image/jpeg"

    "github.com/nfnt/resize"

    
)

// Decoding gives you an Image.
// If you have an io.Reader already, you can give that to Decode 
// without reading it into a []byte.
image, _, err := image.Decode(bytes.NewReader(data))
// check err

newImage := resize.Resize(160, 0, original_image, resize.Lanczos3)

// Encode uses a Writer, use a Buffer if you need the raw []byte
err = jpeg.Encode(someWriter, newImage, nil)
// check err

理论要掌握,实操不能落!以上关于《去调整图像大小》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表