Open ansoda opened 5 years ago
我也遇到了这个问题,非常的坑,其实你应该和我一样是用了网上的案例,他们写的太坑了,估计一般都是用的png直接转,你在生成条形码的时候不要用这种方式,你用jpeg的方式就ok了,代码如下: // 创建一个code128编码的 BarcodeIntCS cs, err := code128.Encode(value) if err != nil { log.Error(err) return nil } // 创建一个要输出数据的文件 file, _ := os.Create(path) defer file.Close()
// 设置图片像素大小
qrCode, err := barcode.Scale(cs, width, height)
if err != nil {
log.Error(err)
return err
}
// 将code128的条形码编码为png图片
return jpeg.Encode(file, qrCode, &jpeg.Options{100})
报16-bit depth is not supported是因为图片的深度是48位的不能绘制导致的,也就是高清图片暂时绘制不了。24-bit带有黑白条码的图片是可以绘制出来的,我刚刚测试过了。
24-bit带有QR码的图片也是可以绘制出来的,也测试过了。
@oneplus1000 can you close this issue if it has been resolved?
solution(解决方法)
bounds := qrcode.Bounds()
dst := image.NewRGBA(bounds)
draw.Draw(dst, bounds, eanImg, bounds.Min, draw.Src)
pdf.ImageFrom(dst, x, y, nil)
Cannot draw black and white barcode or QR code on pdf because 16-bit depth is not supported。