forked from shanemhansen/gogd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgd.go
35 lines (33 loc) · 967 Bytes
/
gd.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package gogd
/*
#include <gd.h>
#cgo LDFLAGS: -lgd
*/
import "C"
import "unsafe"
import "errors"
func (i Image) SquareToCircle(radius int) Image {
return newImage(C.gdImageSquareToCircle(i.ptr, C.int(radius)))
}
func (i Image) StringFTCircle(cx, cy int, radius, textRadius, fillPortion float64, font string, points float64, top string, bottom string, fgcolor int) error {
err := C.gdImageStringFTCircle(i.ptr, C.int(cx), C.int(cy), C.double(radius),
C.double(textRadius), C.double(fillPortion), cStringFromGoString(font),
C.double(points), cStringFromGoString(top), cStringFromGoString(bottom),
C.int(fgcolor))
if err == nil {
return nil
}
// null terminated string.
c := err
count := 0
for *c != 0 {
c = (*C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(c)) + 8))
count++
}
msg := goSliceFromcString(err, count)
// make a copy of msg
return errors.New(string(msg))
}
func (i Image) Sharpen(pct int) {
C.gdImageSharpen(i.ptr, C.int(pct))
}