diff options
| author | trustable-code <krauter.simon@arcor.de> | 2018-12-06 19:16:06 +0100 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2018-12-06 19:16:06 +0100 |
| commit | d5b65cdbe3aba910badc1adf2358447c4ee0e0c7 (patch) | |
| tree | 740e70a57b74337c10383bd30b217fd397007975 /src/nigui/private/gtk3/platform_impl.nim | |
| parent | 7b1941533fbd141b4f36149d729da94c555f38d6 (diff) | |
| download | NiGui-d5b65cdbe3aba910badc1adf2358447c4ee0e0c7.tar.gz NiGui-d5b65cdbe3aba910badc1adf2358447c4ee0e0c7.zip | |
Add saveToBitmapFile() method
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 9 |
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) |
