diff options
author | F.O. <scrotadamus@insiberia.net> | 2025-02-16 17:56:08 +0100 |
---|---|---|
committer | F.O. <scrotadamus@insiberia.net> | 2025-02-16 17:56:57 +0100 |
commit | 17fb6add26291b31f7020e3551a7c8487130a747 (patch) | |
tree | d4559a7339ed181393ff921909e6ce05b7c2cf18 /go-poppler/image.go |
genesi
Diffstat (limited to 'go-poppler/image.go')
-rw-r--r-- | go-poppler/image.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/go-poppler/image.go b/go-poppler/image.go new file mode 100644 index 0000000..ba2abc8 --- /dev/null +++ b/go-poppler/image.go @@ -0,0 +1,31 @@ +package poppler + +// #cgo pkg-config: poppler-glib +// #include <poppler.h> +// #include <glib.h> +import "C" +import ( + "unsafe" + + "github.com/ungerik/go-cairo" +) + +// Image + +type Image struct { + Id int + Area Rectangle + p *C.struct__PopplerPage +} + +type Rectangle struct { + X1, Y1, X2, Y2 float64 +} + +func (im *Image) GetSurface() (cs *cairo.Surface) { + ci := C.poppler_page_get_image(im.p, C.gint(im.Id)) + ctx := C.cairo_create(ci) + cip := (cairo.Cairo_surface)(unsafe.Pointer(ci)) + ctxp := (cairo.Cairo_context)(unsafe.Pointer(ctx)) + return cairo.NewSurfaceFromC(cip, ctxp) +} |