在 GitHub 看到用 python 写的二维码与图片结合的工具,我用 Go 也写了一个玩玩。
go get -u github.com/xrlin/qart/...
# create code with png
qart -m test.png -o out.png http://example.com
# 获取帮助信息
qart -h
Qart -- Generate charming QR Code encoder in Go
https://github.com/xrlin/qart
Flags:
-embed
when set to true, over the code in the source image.
-m string
mask image path
-o string
out PNG/GIF file prefix
-pw int
image point width (module) (default 3)
-startX int
mask image start point
-startY int
mask image start point
-t print as pure text-art on stdout
-width int
sub image width
Usage:
1. Generate normal qr code to stdout
qart http://excample.com
2. Generate code with image to file.
qart -m test.png http://example.com
Tips:
1. Arguments except for flags are joined by " " and used to generate QR code.
Default output is STDOUT. You can set the option to save to file.
2. To generate QR code with mask image(jpg/png/gif) must specify the output file.
import "github.com/xrlin/qart"
q, err := qrcode.NewHalftoneCode(content, qrcode.Highest)
q.AddOption(qart.Option{Embed: false, MaskImagePath: "test.png"})
pointWidth := 3
// Get the image.Image represents the qr code
ret := q.CodeImage(pointWidth)
// Get the bytes of image
imgBytes, err := q.ImageData(pointWidth)
为了方便,我写了一个对应的网站 demo 可以在线生成二维码
网站地址: https://xrlin.github.io/qart-web
为了图片展示方便,所有的图片文件会在服务器上临时保留一份,所以敏感信息就不要提交上来了,自己也可以克隆一份编译在本地运行, 我的 vps 配置低,在线图片文件大小限制最大为 1M。
对于图片处理还有很多可以优化的地方,特别是对于存在压缩优化的 gif 图片。如果大家有什么好的建议,欢迎提交 issue 和 pr。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.