# compile go to js
gopherjs build qr_pcx_generator.go
# generate qr code
node test.js
# to view the file the file using ffmpeg
ffmpeg -i new.pcx new.png -y && open new.png
| package main | |
| import ( | |
| "fmt" | |
| "bytes" | |
| "image" | |
| "github.com/samuel/go-pcx/pcx" | |
| "github.com/skip2/go-qrcode" | |
| "github.com/gopherjs/gopherjs/js" | |
| ) | |
| func CreateQR(text string, size int) *js.Object { | |
| buf := &bytes.Buffer{} | |
| png, err := qrcode.Encode(text, qrcode.Highest, size) | |
| img, _, err := image.Decode(bytes.NewReader(png)) | |
| if err != nil { | |
| fmt.Println("image.Decode err", text) | |
| fmt.Println(err) | |
| } | |
| if err := pcx.Encode(buf, img); err != nil { | |
| fmt.Println(err) | |
| } | |
| return js.MakeWrapper(buf) | |
| } | |
| func main() { | |
| js.Global.Set("QR", map[string]interface{}{"Create": CreateQR}) | |
| } |
| require('./qr_pcx_generator.js') | |
| var text = 'hello world'; | |
| var pcxBuff = QR.Create(text, 128); | |
| require('fs').writeFileSync('new.pcx', Buffer.from(pcxBuff.Bytes())); |