【发布时间】:2021-01-25 11:45:33
【问题描述】:
我需要创建一个颜色深度为1位的单色位图图像,例如:
$ file exampleMono.bmp
> exampleMono.bmp: PC bitmap, Windows 3.x format, 640 x 1000 x 1
在 Go 中,我可以使用以下内容生成简单的 bmp 图像:
tempPal := color.Palette([]color.Color{
color.Black, color.White,
})
img := image.NewPaletted(image.Rect(640, 1000,0,0), tempPal)
filename := fmt.Sprintf("img-%d.bmp", time.Now().Unix())
file, _ := os.Create(filename)
bmp.Encode(file, img)
file.close
但是,生成的 bmp 文件的颜色深度为 8 位。
$ file img-1611574755.bmp
> img-1611574755.bmp: PC bitmap, Windows 3.x format, 640 x 1000 x 8
我查看了 Go 中的 bmp、image 和 draw 包,但没有发现任何可以将颜色深度设置为 1 位的功能。是否有可能在 Go 中实现我所需要的,如果可以,如何实现?
【问题讨论】:
-
仅供参考,如果你想生成任何这样的东西进行测试,你可以在终端中使用 ImageMagick,例如
magick -size 64x48 gradient: -type bilevel image.bmp -
或者如果您想将 PNG 或 JPEG 转换为一个,
magick input.png -type bilevel output.bmp