summaryrefslogtreecommitdiff
path: root/go-poppler/image.go
diff options
context:
space:
mode:
authorF.O. <scrotadamus@insiberia.net>2025-02-16 17:56:08 +0100
committerF.O. <scrotadamus@insiberia.net>2025-02-16 17:56:57 +0100
commit17fb6add26291b31f7020e3551a7c8487130a747 (patch)
treed4559a7339ed181393ff921909e6ce05b7c2cf18 /go-poppler/image.go
genesi
Diffstat (limited to 'go-poppler/image.go')
-rw-r--r--go-poppler/image.go31
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)
+}