From d5b65cdbe3aba910badc1adf2358447c4ee0e0c7 Mon Sep 17 00:00:00 2001 From: trustable-code Date: Thu, 6 Dec 2018 19:16:06 +0100 Subject: Add saveToBitmapFile() method --- src/nigui/private/gtk3/gtk3.nim | 1 + src/nigui/private/gtk3/platform_impl.nim | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src/nigui/private/gtk3') diff --git a/src/nigui/private/gtk3/gtk3.nim b/src/nigui/private/gtk3/gtk3.nim index 32d052f..d4d1c8e 100755 --- a/src/nigui/private/gtk3/gtk3.nim +++ b/src/nigui/private/gtk3/gtk3.nim @@ -481,6 +481,7 @@ proc pango_layout_set_font_description*(layout, desc: pointer) {.importc: "pango proc pango_font_description_new*(): pointer {.importc: "pango_font_description_new", libgtk3.} proc pango_font_description_set_family*(desc: pointer, family: cstring) {.importc: "pango_font_description_set_family", libgtk3.} proc pango_font_description_set_size*(desc: pointer, size: cint) {.importc: "pango_font_description_set_size", libgtk3.} +proc pango_font_description_set_weight*(desc: pointer, size: cint) {.importc: "pango_font_description_set_weight", libgtk3.} # proc pango_font_description_get_size*(desc: pointer): cint {.importc: "pango_font_description_get_size", libgtk3.} # proc pango_layout_set_markup*(layout: pointer, markup: cstring, length: cint) {.importc: "pango_layout_set_markup", libgtk3.} # proc pango_layout_new*(context: pointer): pointer {.importc: "pango_layout_new", libgtk3.} 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) -- cgit v1.2.3