# 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())); |