From 87aa258771941e40ed16bdb0d45aa794af4dc664 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Tue, 2 Nov 2021 17:36:19 +0100 Subject: [PATCH] fix svg resize --- src/driver/pictureviewer/pictureviewer.cpp | 4 ++-- src/driver/pictureviewer/svg.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/driver/pictureviewer/pictureviewer.cpp b/src/driver/pictureviewer/pictureviewer.cpp index da753288c..79d9e62cf 100644 --- a/src/driver/pictureviewer/pictureviewer.cpp +++ b/src/driver/pictureviewer/pictureviewer.cpp @@ -46,7 +46,7 @@ extern int fh_crw_id (const char *); #ifdef FBV_SUPPORT_SVG extern int fh_svg_getsize (const char *, int *, int *, int, int); extern int fh_svg_load (const char *, unsigned char **, int *, int *); -extern int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, int* dx, int* dy); +extern int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, int dx, int dy); extern int fh_svg_id (const char *); #endif double CPictureViewer::m_aspect_ratio_correction; @@ -865,7 +865,7 @@ fb_pixel_t * CPictureViewer::int_getImage(const std::string & name, int *width, #ifdef FBV_SUPPORT_SVG if (name.find(".svg") == (name.length() - 4)) { - svg_load_resize(name.c_str(), &buffer, &x, &y, width, height); + svg_load_resize(name.c_str(), &buffer, &x, &y, *width, *height); if (x != *width || y != *height) buffer = ResizeA(buffer, x, y, *width, *height); } diff --git a/src/driver/pictureviewer/svg.cpp b/src/driver/pictureviewer/svg.cpp index bf74fa1c5..030e5a80a 100644 --- a/src/driver/pictureviewer/svg.cpp +++ b/src/driver/pictureviewer/svg.cpp @@ -108,9 +108,9 @@ error: return 0; } -int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, int* dx, int* dy); +int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, int dx, int dy); -int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, int* dx, int* dy) +int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, int dx, int dy) { NSVGimage *image = NULL; NSVGrasterizer *rast = NULL; @@ -134,8 +134,8 @@ int svg_load_resize(const char *name, unsigned char **buffer, int* ox, int* oy, } float scale_w,scale_h; - scale_w = *dx/w; - scale_h = *dy/h; + scale_w = (float)dx/(float)w; + scale_h = (float)dy/(float)h; w = (int)(w*scale_w); h = (int)(h*scale_h);