diff options
author | Michele Calgaro <[email protected]> | 2020-09-11 14:38:47 +0900 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2020-09-11 14:38:47 +0900 |
commit | 884c8093d63402a1ad0b502244b791e3c6782be3 (patch) | |
tree | a600d4ab0d431a2bdfe4c15b70df43c14fbd8dd0 /debian/imlib/imlib-1.9.15/gdk_imlib/save.c | |
parent | 14e1aa2006796f147f3f4811fb908a6b01e79253 (diff) | |
download | extra-dependencies-884c8093d63402a1ad0b502244b791e3c6782be3.tar.gz extra-dependencies-884c8093d63402a1ad0b502244b791e3c6782be3.zip |
Added debian extra dependency packages.
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'debian/imlib/imlib-1.9.15/gdk_imlib/save.c')
-rw-r--r-- | debian/imlib/imlib-1.9.15/gdk_imlib/save.c | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/debian/imlib/imlib-1.9.15/gdk_imlib/save.c b/debian/imlib/imlib-1.9.15/gdk_imlib/save.c new file mode 100644 index 00000000..1c865281 --- /dev/null +++ b/debian/imlib/imlib-1.9.15/gdk_imlib/save.c @@ -0,0 +1,173 @@ +#define _GNU_SOURCE +#include <config.h> +#include "gdk_imlib.h" +#define id _gdk_imlib_data +#include "gdk_imlib_private.h" + +gint +gdk_imlib_save_image(GdkImlibImage * im, char *file, GdkImlibSaveInfo * info) +{ + char *ext; + char cmd[10240]; + FILE *f; + GdkImlibSaveInfo defaults; + + if (!im || !file) + return 0; + + defaults.quality = 208; + defaults.scaling = 1024; + defaults.xjustification = 512; + defaults.yjustification = 512; + defaults.page_size = PAGE_SIZE_LETTER; + defaults.color = 1; + + if (!info) + info = &defaults; + ext = _gdk_imlib_GetExtension(file); + + if ((!strcasecmp(ext, "ppm")) || (!strcasecmp(ext, "pnm")) || (!strcasecmp (ext, "pgm"))) + { + return _gdk_imlib_SavePPM (im, file, info); + } + else if (!strcasecmp(ext, "ps")) + { + return _gdk_imlib_SavePS (im, file, info); + } + else if ((!strcasecmp(ext, "jpeg")) || (!strcasecmp(ext, "jpg"))) + { + return _gdk_imlib_SaveJPEG (im, file, info); + } + else if (!strcasecmp(ext, "png")) + { + return _gdk_imlib_SavePNG (im, file, info); + } + else if ((!strcasecmp(ext, "tiff")) || (!strcasecmp(ext, "tif"))) + { + return _gdk_imlib_SaveTIFF (im, file, info); + } +#if 0 + /* Get rid of the "helpers" */ + if (id->fallback) + { + f = _gdk_imlib_open_helper("%C/convert pnm:- %s", file, "wb"); + if (f) + { + if (!fprintf(f, "P6\n# Created by Imlib\n%i %i\n255\n", im->rgb_width, im->rgb_height)) + { + _gdk_imlib_close_helper(f); + return 0; + } + if (!fwrite(im->rgb_data, 1, (im->rgb_width * im->rgb_height * 3), f)) + { + _gdk_imlib_close_helper(f); + return 0; + } + if (_gdk_imlib_close_helper(f)) + return 0; + return 1; + } + + if (!strcasecmp(ext, "jpeg")) + g_snprintf(cmd, sizeof(cmd), "%%H -quality %i -progressive -outfile %%s", 100 * info->quality / 256); + else if (!strcasecmp(ext, "jpg")) + g_snprintf(cmd, sizeof(cmd), "%%H -quality %i -progressive -outfile %%s", 100 * info->quality / 256); + else if (!strcasecmp(ext, "bmp")) + strcpy(cmd, "%Q %N/ppmtobmp > %s"); + else if (!strcasecmp(ext, "gif")) + strcpy(cmd, "%Q %N/ppmtogif -interlace > %s"); + else if (!strcasecmp(ext, "ilbm")) + strcpy(cmd, "%N/ppmtoilbm -24if -hires -lace -compress > %s"); + else if (!strcasecmp(ext, "ilb")) + strcpy(cmd, "%N/ppmtoilbm -24if -hires -lace -compress > %s"); + else if (!strcasecmp(ext, "iff")) + strcpy(cmd, "%N/ppmtoilbm -24if -hires -lace -compress > %s"); + else if (!strcasecmp(ext, "icr")) + strcpy(cmd, "%N/ppmtoicr > %s"); + else if (!strcasecmp(ext, "map")) + strcpy(cmd, "%N/ppmtomap > %s"); + else if (!strcasecmp(ext, "mit")) + strcpy(cmd, "%N/ppmtomitsu -sharpness 4 > %s"); + else if (!strcasecmp(ext, "mitsu")) + strcpy(cmd, "%N/ppmtomitsu -sharpness 4 > %s"); + else if (!strcasecmp(ext, "pcx")) + strcpy(cmd, "%N/ppmtopcx -24bit -packed > %s"); + else if (!strcasecmp(ext, "pgm")) + strcpy(cmd, "%N/ppmtopgm > %s"); + else if (!strcasecmp(ext, "pi1")) + strcpy(cmd, "%N/ppmtopi1 > %s"); + else if (!strcasecmp(ext, "pic")) + strcpy(cmd, "%Q %N/ppmtopict > %s"); + else if (!strcasecmp(ext, "pict")) + strcpy(cmd, "%Q %N/ppmtopict > %s"); + else if (!strcasecmp(ext, "pj")) + strcpy(cmd, "%N/ppmtopj > %s"); + else if (!strcasecmp(ext, "pjxl")) + strcpy(cmd, "%N/ppmtopjxl > %s"); + else if (!strcasecmp(ext, "puz")) + strcpy(cmd, "%N/ppmtopuzz > %s"); + else if (!strcasecmp(ext, "puzz")) + strcpy(cmd, "%N/ppmtopuzz > %s"); + else if (!strcasecmp(ext, "rgb3")) + strcpy(cmd, "%N/ppmtorgb3 > %s"); + else if (!strcasecmp(ext, "six")) + strcpy(cmd, "%N/ppmtosixel > %s"); + else if (!strcasecmp(ext, "sixel")) + strcpy(cmd, "%N/ppmtosizel > %s"); + else if (!strcasecmp(ext, "tga")) + strcpy(cmd, "%N/ppmtotga -rgb > %s"); + else if (!strcasecmp(ext, "targa")) + strcpy(cmd, "%N/ppmtotga -rgb > %s"); + else if (!strcasecmp(ext, "uil")) + strcpy(cmd, "%N/ppmtouil > %s"); + else if (!strcasecmp(ext, "xpm")) + strcpy(cmd, "%Q %N/ppmtoxpm > %s"); + else if (!strcasecmp(ext, "yuv")) + strcpy(cmd, "%N/ppmtoyuv > %s"); + else if (!strcasecmp(ext, "png")) + strcpy(cmd, "%N/pnmtopng > %s"); + else if (!strcasecmp(ext, "ps")) + strcpy(cmd, "%N/pnmtops -center -scale 100 > %s"); + else if (!strcasecmp(ext, "rast")) + strcpy(cmd, "%N/pnmtorast -rle > %s"); + else if (!strcasecmp(ext, "ras")) + strcpy(cmd, "%N/pnmtorast -rle > %s"); + else if (!strcasecmp(ext, "sgi")) + strcpy(cmd, "%N/pnmtosgi > %s"); + else if (!strcasecmp(ext, "sir")) + strcpy(cmd, "%N/pnmtosir > %s"); + else if (!strcasecmp(ext, "tif")) + strcpy(cmd, "%N/pnmtotiff -lzw > %s"); + else if (!strcasecmp(ext, "tiff")) + strcpy(cmd, "%N/pnmtotiff -lzw > %s"); + else if (!strcasecmp(ext, "xwd")) + strcpy(cmd, "%N/pnmtoxwd > %s"); + else + ext = ""; + if (ext[0]) + { + f = _gdk_imlib_open_helper(cmd, file, "wb"); + if (f) + { + if (!fprintf(f, "P6\n# Created by Imlib\n%i %i\n255\n", im->rgb_width, im->rgb_height)) + { + _gdk_imlib_close_helper(f); + return 0; + } + if (!fwrite(im->rgb_data, 1, (im->rgb_width * im->rgb_height * 3), f)) + { + _gdk_imlib_close_helper(f); + return 0; + } + if (_gdk_imlib_close_helper(f)) + return 0; + return 1; + } + } + } +#endif + fprintf(stderr, "gdk_imlib ERROR: Cannot save image: %s\n", file); + fprintf(stderr, "All fallbacks failed.\n"); + + return 0; +} |