相关疑难解决方法(0)

如何在Go中为图像添加简单的文本标签?

给定image.RGBA,坐标和一行文字,如何添加一个简单的标签与任何普通的固定字体?例如Face7x13来自font/basicfont.

package main

import (
    "image"
    "image/color"
    "image/png"
    "os"
)

func main() {
    img := image.NewRGBA(image.Rect(0, 0, 320, 240))
    x, y := 100, 100
    addLabel(img, x, y, "Test123")
    png.Encode(os.Stdout, img)
}

func addLabel(img *image.RGBA, x, y int, label string) {
     col := color.Black
     // now what?
}
Run Code Online (Sandbox Code Playgroud)

对齐并不重要,但最好是我可以将标签写在从坐标开始的线上方.

我想避免像字体这样的外部可加载依赖项.

fonts image draw go

31
推荐指数
2
解决办法
1万
查看次数

更改单个像素的颜色 - Go lang图像

我想打开jpeg图像文件,对其进行编码,更改一些像素颜色,然后将其保存原样.

我想做这样的事情

imgfile, err := os.Open("unchanged.jpeg")
defer imgfile.Close()
if err != nil {
    fmt.Println(err.Error())
}

img,err := jpeg.Decode(imgfile)
if err != nil {
    fmt.Println(err.Error())
}
img.Set(0, 0, color.RGBA{85, 165, 34, 1})
img.Set(1,0,....)

outFile, _ := os.Create("changed.jpeg")
defer outFile.Close()
jpeg.Encode(outFile, img, nil)
Run Code Online (Sandbox Code Playgroud)

我只是无法想出一个有效的解决方案,因为我在编码图像文件后得到的默认图像类型没有Set方法.

任何人都可以解释如何做到这一点?非常感谢.

image draw go

11
推荐指数
1
解决办法
6515
查看次数

寻找将内存图像保存到文件的更好方法

代码的目标是下载图像,将其粘贴到更大的父图像并保存结果。

经过多次失败后,我最终得到了以下有效的代码。

但是,有没有比使用bytes.Buffer和 awriter将目标图像保存到文件/将其传递给 httpResponse更好的方法?

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "os"
    // "image/color"
    // "io/ioutil"
    // "fmt"
    "bufio"
    "bytes"
    "log"
    "net/http"
)

func main() {
    // Fetch an image.
    resp, err := http.Get("http://katiebrookekennels.com/wp-content/uploads/2014/10/dog-bone4.jpg")
    if err != nil {
        log.Panic(err)
    }
    defer resp.Body.Close()

    // Keep an in memory copy.
    myImage, err := jpeg.Decode(resp.Body)

    if err != nil {
        log.Panic(err)
    }

    // Prepare parent image where we want to position child image.
    target := image.NewRGBA(image.Rect(0, 0, …
Run Code Online (Sandbox Code Playgroud)

io image go

9
推荐指数
1
解决办法
1万
查看次数

如何将base64解码的png图像写入文件?

我尝试使用以下代码将base64 png图像写入文件:

imageReader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(Images[i]))
pngImage, _, err := image.Decode(imageReader)
if err != nil {
  beego.Error(err)
}
bounds := pngImage.Bounds()
if imgFile, err = os.Create(fileName + ".png"); err != nil {
   return Data{}
}
defer imgFile.Close()
_, err = imgFile.Write([]byte(pngImage))
Run Code Online (Sandbox Code Playgroud)

界限还可以.最后一行的错误消息是

无法将pngImage(type image.Image)转换为type [] byte

显然,因为image.Image不是byte [].但是我该如何转换呢?或者甚至有一个更简单的版本来做到这一点.

base64 png file decoder go

1
推荐指数
1
解决办法
2382
查看次数

在 Golang 中绘制具有两个半径的圆圈

我环顾四周,但找不到任何对在 golang 中绘制圆圈有用的东西。我想绘制一个具有 2 个给定(内部和外部)半径的绘图,并为它们之间的所有像素着色。

一种可能的方法是遍历每个像素并为其着色,直到创建环。虽然,这似乎非常低效。

对此的任何帮助将不胜感激!:)

image draw go

1
推荐指数
1
解决办法
3095
查看次数

标签 统计

go ×5

image ×4

draw ×3

base64 ×1

decoder ×1

file ×1

fonts ×1

io ×1

png ×1