Esempio n. 1
0
File: gd.go Progetto: trajber/go-gd
func ImageToPngBuffer(p *Image) []byte {
	var imgSize int
	pimgSize := (*C.int)(Pointer(&imgSize))

	buf := C.gdImagePngPtr(p.img, pimgSize)
	defer C.gdFree(buf)

	return C.GoBytes(buf, *pimgSize)
}
Esempio n. 2
0
func (p *gdImage) gdImagePng() ([]byte, error) {
	if p == nil {
		panic(imageError)
	}

	var size C.int

	data := C.gdImagePngPtr(p.img, &size)
	if data == nil || int(size) == 0 {
		return []byte{}, writeError
	}

	defer C.gdFree(unsafe.Pointer(data))

	return C.GoBytes(data, size), nil
}