summaryrefslogtreecommitdiff
path: root/src/nigui/private/gtk3/platform_impl.nim
diff options
context:
space:
mode:
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index a7c2cc0..239ce59 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -590,6 +590,14 @@ method loadFromFile(image: Image, filePath: string) =
image.canvas.fWidth = cairo_image_surface_get_width(canvas.fSurface)
image.canvas.fHeight = cairo_image_surface_get_height(canvas.fSurface)
+method saveToBitmapFile(image: Image, filePath: string) =
+ let canvas = cast[CanvasImpl](image.fCanvas)
+ var pixbuf = gdk_pixbuf_get_from_surface(canvas.fSurface, 0, 0, image.width.cint, image.height.cint)
+ defer: g_object_unref(pixbuf)
+ var error: ptr GError
+ if not gdk_pixbuf_save(pixbuf, filePath, "bmp", error.addr, nil, nil, nil):
+ pRaiseGError(error)
+
method saveToPngFile(image: Image, filePath: string) =
let canvas = cast[CanvasImpl](image.fCanvas)
var pixbuf = gdk_pixbuf_get_from_surface(canvas.fSurface, 0, 0, image.width.cint, image.height.cint)
@@ -598,7 +606,6 @@ method saveToPngFile(image: Image, filePath: string) =
if not gdk_pixbuf_save(pixbuf, filePath, "png", error.addr, nil, nil, nil):
pRaiseGError(error)
-
method saveToJpegFile(image: Image, filePath: string, quality = 80) =
let canvas = cast[CanvasImpl](image.fCanvas)
var pixbuf = gdk_pixbuf_get_from_surface(canvas.fSurface, 0, 0, image.width.cint, image.height.cint)