您的位置:首页 > 教育 > 锐评 > golang 图片转1bit color bmp图片

golang 图片转1bit color bmp图片

2024/10/6 10:26:04 来源:https://blog.csdn.net/zhtsuc/article/details/140890343  浏览:    关键词:golang 图片转1bit color bmp图片

问题背景

一些打印机需要的都是1bit color bmp图片,但是golang中没有直接的办法,官方image库最低bpp为8,打印机无法使用。

在github上找到了很多资源,都没有直接能转的,突然看到一个老外,可以支持plattered图片转位1bit color bmp图片,然后自己先把图片转位plattered黑白图片,继续使用该黑白图片转位1bit color bmp,果断写了一段测试代码,没想到直接成功了。

这样打印机就能直接用了。从而实现程序自动化打印。

解决方法

package mainimport ("bufio""github.com/sergeymakinen/go-bmp""image""image/color""image/draw"_ "image/jpeg"_ "image/png""os"
)func main() {// 解码PNG图像file, err := os.Open("./logo.png")if err != nil {panic(err)}//img, _, err := image.Decode(file)//if err != nil {//	panic(err)//}// 解码图像src, _, err := image.Decode(bufio.NewReader(file))if err != nil {panic(err)}bounds := src.Bounds()palette := []color.Color{color.White, color.Black}dst := image.NewPaletted(bounds, palette)// 将src图像转换为Paletted图像draw.Draw(dst, bounds, src, image.ZP, draw.Src)// 打开一个BMP文件用于写入outFile, err := os.Create("output.bmp")if err != nil {panic(err)}defer outFile.Close()// 使用BMP编码器将图像编码为BMP格式并写入文件err = bmp.Encode(outFile, dst)if err != nil {panic(err)}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com