hyhhui / bpg

BPG decoder for Go (Zero Dependencies).

Home Page:http://godoc.org/github.com/chai2010/bpg

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BPG for Go

Build Status GoDoc

BPG is defined at: http://bellard.org/bpg/

Install

Install GCC or MinGW (http://tdm-gcc.tdragon.net/download) at first, and then run these commands:

1. Assure set the `CGO_ENABLED` environment variable to `1` to enable `CGO` (Default is enabled).
2. `go get github.com/chai2010/bpg`
3. `go run hello.go`

Examples

This is a simple example:

package main

import (
	"bytes"
	"fmt"
	"image/png"
	"io/ioutil"
	"log"

	"github.com/chai2010/bpg"
)

func main() {
	var buf bytes.Buffer
	var data []byte
	var err error

	data, err = ioutil.ReadFile("./testdata/lena512color.bpg")
	if err != nil {
		log.Println(err)
	}
	info, err := bpg.DecodeInfo(data)
	if err != nil {
		log.Println(err)
	}
	fmt.Printf("info: %v\n", info)

	// Decode bpg
	m, err := bpg.Decode(bytes.NewReader(data))
	if err != nil {
		log.Println(err)
	}

	// save as png
	if err = png.Encode(&buf, m); err != nil {
		log.Println(err)
	}
	if err = ioutil.WriteFile("output.png", buf.Bytes(), 0666); err != nil {
		log.Println(err)
	}

	fmt.Println("Save as output.png")
}

BUGS

Report bugs to chaishushan@gmail.com.

Thanks!

About

BPG decoder for Go (Zero Dependencies).

http://godoc.org/github.com/chai2010/bpg


Languages

Language:C++ 65.7%Language:C 33.5%Language:Go 0.4%Language:Makefile 0.2%Language:JavaScript 0.2%Language:HTML 0.0%Language:Batchfile 0.0%