当前位置: 首页 > 面试题库 >

Golang将image.Image转换为[] byte

夏祺然
2023-03-14
问题内容

无法将image.image转换为[] byte。问题点用虚线包裹。

image_data, err := mybucket.Get(key)

if err != nil {
    panic(err.Error())
}

// reset format of data []byte to image.Image

original_image, _, err := image.Decode(bytes.NewReader(image_data))

new_image := resize.Resize(160, 0, original_image, resize.Lanczos3)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
// reset format the image.Image to data []byte here
var send_S3 []byte
var byteWriter = bufio.NewWriter(send_S3)
- - - - - - - - - - - - - - - - - - - - - - - - - -
err = jpeg.Encode(byteWriter, new_image, nil)

new_path := key + "_sm"

err = mybucket.Put(new_path, send_S3, "image/jpg", "aclstring")

基本上,我需要new_image为[] byte格式,以便可以将其发送到我的S3存储桶。

谢谢您的帮助。


问题答案:

您需要一个byte.Buffer,而不是bufio.Writer。bytes.Buffer在需要写入器的写入器时使用。bufio.Writer只是在将数据转发到另一个写入器之前将其缓存在内存中。

buf := new(bytes.Buffer)
err := jpeg.Encode(buf, new_image, nil)
send_s3 := buf.Bytes()


 类似资料:
  • 问题内容: 我试图以90度的角度旋转base64编码的图像。完成此操作后,我想将其转换回base64字符串。但不幸的是无法实现这一目标。 到目前为止,这是我所做的: Kindy帮我如何将Rotated_image转换为base64字符串。 这是rotated_image的: [‘Image__transformer’,’__ doc __’,’__ getattr __’,’__ init __’

  • 问题内容: 我想在下面的代码中改进getCustomerFromDTO方法,我需要从interface {}创建一个结构,目前我需要将该接口编组为byte [],然后将数组解组为我的结构-必须有更好的方法。 我的用例是,我通过rabbitmq发送结构,然后使用具有其他特定于域的数据的通用DTO包装器来发送它们。当我从Rabbit MQ接收DTO时,消息下方的一层将被封送给我的DTO,然后我需要从该

  • 问题内容: 将float转换为int时如何避免浮点错误。例如,下面的代码打印出来:当我受伤时,期望它打印出来。 问题答案: 您需要了解一些内容:是一个十进制数字(以十进制基数表示)。十进制中的是一个有限数字,正好是:。 通常,计算机以二进制表示形式存储数字。该数字不能用有限的二进制数表示:是以二进制表示的 无限 数(同样的原因为什么不能用有限的十进制数表示,它是一个无穷的序列:)。 但是Go(像其

  • 我想将字符串转换为int64。我从<code>strconv ParseInt实际上返回一个int64: 所以如果我想从一个字符串中获取一个int64,我应该避免使用Atoi,而是使用ParseInt吗?还是有Atio64藏在某个地方?

  • 问题内容: 是否可以让函数具有以下接口: 如果我希望它在接口中使用function : 换句话说,我可以以某种方式转换为吗?或者我必须在使用的所有函数中都具有结果类型? 目前,我尝试了以下方法: 完整代码: 操场 问题答案: A 是值的通道,它不是单个值,而是值的来源(或目标),但在您的情况下,您将其用作来源。 因此,您不能转换为。您可以做的并且可能是您的意思是使用从a接收的值(类型)作为值。 这

  • 问题内容: 下面的示例代码使用bimg将pdf转换为jpeg 。 但只会转换的第1页。 有什么方法可以转换成包含多个页面的图像。 问题答案: bimg使用libvips,并可能加载PDF。不幸的是,libvips加载PDF的默认设置是仅加载一页。除非您想修改bimg(供应商,贡献,破解源代码等),否则您很不幸。 不是问题的答案(不使用bimg),但是您可以改用imagemagick,