猿问

如何发送 jpeg.Encode 图像?

我正在使用 jpeg.Encode 创建图片并想发送它。如何避免创建中间文件?


创建并保存文件。


  // ...

  outFile, err := os.Create("./images/" + name + ".jpg")

  if err != nil {

    log.Fatal(err)

    os.Exit(-1)

  }

  defer outFile.Close()

  buff := bufio.NewWriter(outFile)


  err = jpeg.Encode(buff, background, &jpeg.Options{Quality: 90})

  if err != nil {

    log.Fatal(err)

    os.Exit(-1)

  }


  err = buff.Flush()

  if err != nil {

    log.Fatal(err)

    os.Exit(-1)

  }

发送文件。


  file, err := os.Open("./images/" + name + ".jpg")

  if err != nil {

    log.Fatal(err)

  }


  body := &bytes.Buffer{}

  writer := multipart.NewWriter(body)


  part, err := writer.CreateFormFile("photo", file.Name())

  if err != nil {

    return nil, err

  }


  io.Copy(part, file)

  if err = writer.Close(); err != nil {

    return nil, err

  }


  resp, err := http.Post(uploadURL, writer.FormDataContentType(), body)

  if err != nil {

    return nil, err

  }

  defer resp.Body.Close()

如何发送照片而不将其保存在服务器上?


小唯快跑啊
浏览 214回答 1
1回答

一只斗牛犬

只需将part目标传递给jpeg.Encode():// ...part, err := writer.CreateFormFile("photo", file.Name())if err != nil {    return nil, err}err = jpeg.Encode(part, background, &jpeg.Options{Quality: 90})if err != nil {    return nil, err}if err = writer.Close(); err != nil {    return nil, err}resp, err := http.Post(uploadURL, writer.FormDataContentType(), body)if err != nil {    return nil, err}defer resp.Body.Close()
随时随地看视频慕课网APP

相关分类

Go
我要回答