From: <enl...@li...> - 2001-11-06 22:19:00
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: Makefile.am config.h.in convert.c identify.c Added Files: .cvsignore Log Message: Added some more options and fixed some bugs =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 2001/11/05 12:33:02 1.1 +++ Makefile.am 2001/11/06 22:18:59 1.2 @@ -1,10 +1,10 @@ ###################################################################### -# Makefile.am February 2000 +# Makefile.am November 2001 # Horms ho...@ve... # -# perdition -# Mail retrieval proxy server -# Copyright (C) 1999-2001 Horms +# imlib2_tools +# Clone of ImageMagick command line programmes using Imlib2. +# Copyright (C) 2001 Horms # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as @@ -28,10 +28,5 @@ imlib2_convert_SOURCES = convert.c imlib2_identify_SOURCES = identify.c - -#INCLUDES= - -# Removed because Debian doesn't like it -#LDFLAGS = -Wl,--rpath -Wl,@prefix@ LDADD = @imlib2_libs@ -lm =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/config.h.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- config.h.in 2001/11/05 12:33:02 1.1 +++ config.h.in 2001/11/06 22:18:59 1.2 @@ -1,4 +1,4 @@ -/* src/config.h.in. Generated automatically from configure.in by autoheader. */ +/* src/config.h.in. Generated automatically from configure.in by autoheader 2.13. */ /* Define to empty if the keyword does not work. */ #undef const =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/convert.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- convert.c 2001/11/05 12:33:02 1.1 +++ convert.c 2001/11/06 22:18:59 1.2 @@ -2,8 +2,10 @@ * convert.c November 2001 * Horms ho...@ve... * - * imlib2_convert - * Clone of ImageMagick convert programme that uses Imlib2. + * Clone of ImageMagick's convert programme + * + * imlib2_tools + * Clone of ImageMagick command line programmes using Imlib2. * Copyright (C) 2001 Horms * * Permission is hereby granted, free of charge, to any person @@ -45,24 +47,30 @@ #include <popt.h> #include <math.h> +#define DEFAULT_CACHE_SIZE 80 /* In megabytes */ + #define imlib_context_set_colour(_r, _g, _b, _a) \ imlib_context_set_color(_r, _g, _b, _a) -#define __OP_FLIP 0x0001 -#define __OP_FLOP 0x0002 -#define __OP_AVERAGE 0x0004 - #define __SAFE_FREE(_ptr) \ if(_ptr!=NULL) { \ free(_ptr); \ } \ _ptr = NULL; +#define __OP_FLIP 0x0001 +#define __OP_FLOP 0x0002 +#define __OP_FLOP 0x0002 +#define __OP_AVERAGE 0x0004 +#define __OP_NOANTIALIAS 0x0010 + typedef struct { const char *blur; const char *border; const char *bordercolour; const char *crop; + const char *channel; + const char *cache; const char *geometry; const char *gamma; const char *rotate; @@ -79,19 +87,26 @@ fprintf(exit_status ? stderr : stdout, PACKAGE " version " VERSION " Copyright Horms\n\n" "Usage: imlib2_convert [options] source destination\n" - " options:\n" - " -average\n" - " -blur <radius>[%%]\n" - " -border <width>[x<height>]\n" - " -bordercolour #<rr><gg><bb>[<aa>]\n" - " -crop <width>[x<height>][%%]\n" - " -flip\n" - " -flop\n" - " -gamma <gamma>|<red_gamma>/<green_gamma>/<blue_gamma>\n" - " -geometry <width>[x<height>][%%][<|>][!]\n" - " -help\n" - " -rotate <angle>[<|>]\n" - "\n"); + " options:\n" + " -average\n" + " -[no]antialias\n" + " -blur <radius>[%%]\n" + " -border <width>[x<height>]\n" + " -bordercolour #<rr><gg><bb>[<aa>]\n" + " -cache megabytes\n" + " (default is %d)\n" + " -crop <width>[x<height>][%%]\n" + " -channel Red|Green|Blue|Alpha\n" + " Matte has the same meaning as Alpha\n" + " -coalesce (The same as average)\n" + " -flip\n" + " -flop\n" + " -gamma <gamma>|<red>/<green>/<blue>[/<alpha>]\n" + " -geometry <width>[x<height>][%%][<|>][!]\n" + " -help\n" + " -rotate <angle>[<|>]\n" + "\n", + DEFAULT_CACHE_SIZE); exit(exit_status); } @@ -114,6 +129,9 @@ struct poptOption options[] = { {"average", 'a', POPT_ARGFLAG_ONEDASH, NULL, 'a'}, + {"coalesce", 'a', POPT_ARGFLAG_ONEDASH, NULL, 'a'}, + {"antialias", 'A', POPT_ARGFLAG_ONEDASH, NULL, 'A'}, + {"noantialias", 'n', POPT_ARGFLAG_ONEDASH, NULL, 'n'}, {"blur", 'b', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'b'}, {"border", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, @@ -124,8 +142,12 @@ {"bordercolor", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 129}, + {"cache", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 130}, {"crop", 'c', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'c'}, + {"channel", 'C', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 'C'}, {"flip", 'f', POPT_ARGFLAG_ONEDASH, NULL, 'f'}, {"flop", 'F', POPT_ARGFLAG_ONEDASH, NULL, 'F'}, {"gamma", 'G', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, @@ -140,7 +162,7 @@ opt = (options_t *) malloc(sizeof(options_t)); if (opt == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not allocate memory for options.\n"); return (NULL); } @@ -164,6 +186,12 @@ optarg = poptGetOptArg(context); switch (c) { + case 'A': + /* Does nothing as this is the default */ + break; + case 'n': + opt->bin_ops |= __OP_NOANTIALIAS; + break; case 'a': opt->bin_ops |= __OP_AVERAGE; break; @@ -176,9 +204,15 @@ case 129: opt->bordercolour = optarg; break; + case 130: + opt->cache = optarg; + break; case 'c': opt->crop = optarg; break; + case 'C': + opt->channel = optarg; + break; case 'f': opt->bin_ops |= __OP_FLIP; break; @@ -204,20 +238,15 @@ } } - if ((opt->files = poptGetArgs(context)) == NULL) { + if ((opt->files = poptGetArgs(context)) == NULL || + (opt->src = *(opt->files)) == NULL) { fprintf(stderr, "No source or destination file\n\n"); usage(-1); } - if((opt->src = *(opt->files)) == NULL) { - fprintf(stderr, "Internal error\n"); - goto bail; - } - for(file = opt->files, opt->nfiles = 0; *file != NULL; file++, opt->nfiles++) { opt->dest = *file; - printf("File: %s\n", *file); } if (opt->dest == opt->src) { fprintf(stderr, "No destination file\n\n"); @@ -225,10 +254,6 @@ } return (opt); - -bail: - __OPTIONS_SAFE_FREE(opt); - return (NULL); } @@ -403,7 +428,7 @@ imlib_image_get_height (), w, h); if (out_image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create scaled image\n"); return (NULL); } @@ -542,18 +567,15 @@ digits = (int)log10(no) + 1; len = strlen(dest) + digits + 2; - if((buf = (char *)malloc(len)) == NULL) { - fprintf(stderr, "Internal error\n"); - exit (-1); - } - if((name = strdup(dest)) == NULL) { - fprintf(stderr, "Internal error\n"); + if((buf = (char *)malloc(len)) == NULL || + (name = strdup(dest)) == NULL) { + fprintf(stderr, "Could not allocate memory for filename\n"); exit (-1); } if((suffix = strrchr(name, '.')) == NULL || *(suffix+1) == '\0') { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "No suffix in filename\n"); exit (-1); } @@ -567,7 +589,8 @@ out_image = imlib_create_cropped_image(x, y, ww, hh); if (out_image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create cropped " + "image\n"); exit (-1); } imlib_context_set_image(out_image); @@ -595,7 +618,7 @@ out_image = imlib_create_cropped_image(x, y, w, h); if (out_image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create cropped image\n"); return (NULL); } @@ -641,7 +664,7 @@ imlib_context_set_image(image); if((data=imlib_image_get_data_for_reading_only()) == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not get image data for autocrop\n"); return(NULL); } @@ -784,7 +807,7 @@ else { image = image_crop_single(image, x, y, w, h); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not crop image\n"); return (NULL); } } @@ -948,7 +971,7 @@ } if ((new_image = imlib_create_image(w, h)) < 0) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create new image with border\n"); return (NULL); } @@ -987,14 +1010,16 @@ static int calculate_gamma(const char *spec, double *r, double *g, - double *b) + double *b, double *a) { char *end; + *r = 1.0; + *g = 1.0; + *b = 1.0; + *a = 1.0; + if (spec == NULL) { - *r = 1.0; - *g = 1.0; - *b = 1.0; return (0); } @@ -1029,6 +1054,16 @@ return (-1); } + if (*end == '\0') { + return (0); + } + + spec = end + 1; + *a = strtod(spec, &end); + if (*a < 0 || *a > INT_MAX) { + return (-1); + } + if (*end != '\0') { return (-1); } @@ -1037,11 +1072,9 @@ } -static Imlib_Image image_gamma(Imlib_Image image, const char *spec) +static Imlib_Image image_gamma_numeric(Imlib_Image image, double r, + double g, double b, double a) { - double r; - double g; - double b; Imlib_Color_Modifier modifier; DATA8 r_table[256]; DATA8 g_table[256]; @@ -1051,43 +1084,51 @@ imlib_context_set_image(image); - if (spec == NULL) { + if (r == 1.0 && g == 1.0 && b == 1.0 && a == 1.0) { return (image); } - if (calculate_gamma(spec, &r, &g, &b) < 0) { - fprintf(stderr, "Invalid gamma\n\n"); - usage(-1); - } - - if (r == 1.0 && g == 1.0 && b == 1.0) { - return (image); - } - if ((modifier = imlib_create_color_modifier()) == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create colour modifier\n"); return (NULL); } imlib_context_set_color_modifier(modifier); imlib_reset_color_modifier(); - if (r == g && r == b) { + if (r == g && r == b && r == a) { imlib_modify_color_modifier_gamma(r); } else { imlib_get_color_modifier_tables(r_table, g_table, b_table, a_table); - - imlib_modify_color_modifier_gamma(r); - imlib_get_color_modifier_tables(r_table, dummy_table, - dummy_table, dummy_table); - imlib_modify_color_modifier_gamma(g); - imlib_get_color_modifier_tables(dummy_table, g_table, - dummy_table, dummy_table); - - imlib_modify_color_modifier_gamma(b); - imlib_get_color_modifier_tables(dummy_table, dummy_table, - b_table, dummy_table); + if(r != 1.0) { + imlib_modify_color_modifier_gamma(r); + imlib_get_color_modifier_tables(r_table, dummy_table, + dummy_table, dummy_table); + imlib_reset_color_modifier(); + } + + if(g != 1.0) { + imlib_modify_color_modifier_gamma(g); + imlib_get_color_modifier_tables(dummy_table, g_table, + dummy_table, + dummy_table); + imlib_reset_color_modifier(); + } + + if(b != 1.0) { + imlib_modify_color_modifier_gamma(b); + imlib_get_color_modifier_tables(dummy_table, + dummy_table, b_table, dummy_table); + imlib_reset_color_modifier(); + } + + if(a != 1.0) { + imlib_modify_color_modifier_gamma(a); + imlib_get_color_modifier_tables(dummy_table, + dummy_table, dummy_table, a_table); + imlib_reset_color_modifier(); + } imlib_set_color_modifier_tables(r_table, g_table, b_table, a_table); @@ -1100,6 +1141,28 @@ } +static Imlib_Image image_gamma(Imlib_Image image, const char *spec) +{ + double r; + double g; + double b; + double a; + + imlib_context_set_image(image); + + if (spec == NULL) { + return (image); + } + + if (calculate_gamma(spec, &r, &g, &b, &a) < 0) { + fprintf(stderr, "Invalid gamma\n\n"); + usage(-1); + } + + return(image_gamma_numeric(image, r, g, b, a)); +} + + static int calculate_angle(const char *spec, double *a) { int increase = 0; @@ -1207,7 +1270,7 @@ } if ((new_image = imlib_create_rotated_image(angle)) == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create rotated image\n"); return (NULL); } @@ -1217,7 +1280,7 @@ h = imlib_image_get_height(); if ((image = imlib_create_image(w, h)) < 0) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Could not create image for rotation\n"); return (NULL); } @@ -1258,7 +1321,7 @@ imlib_context_set_image(image); if(!average) { - return(0); + return(image); } w = imlib_image_get_width(); @@ -1267,34 +1330,18 @@ size = w*h*sizeof(DATA32); - if((data_r = (DATA32 *)malloc(size)) == NULL) { - fprintf(stderr, "Internal Error\n"); + if((data_r = (DATA32 *)malloc(size)) == NULL || + (data_g = (DATA32 *)malloc(size)) == NULL || + (data_b = (DATA32 *)malloc(size)) == NULL || + (data_a = (DATA32 *)malloc(size)) == NULL) { + fprintf(stderr, "Could not allocate memory for averaging\n"); return(NULL); } memset(data_r, 0, size); - - if((data_g = (DATA32 *)malloc(size)) == NULL) { - __IMAGE_AVERAGE_CLEAN_UP; - fprintf(stderr, "Internal Error\n"); - return(NULL); - } memset(data_g, 0, size); - - if((data_b = (DATA32 *)malloc(size)) == NULL) { - __IMAGE_AVERAGE_CLEAN_UP; - fprintf(stderr, "Internal Error\n"); - return(NULL); - } memset(data_b, 0, size); - - if((data_a = (DATA32 *)malloc(size)) == NULL) { - __IMAGE_AVERAGE_CLEAN_UP; - fprintf(stderr, "Internal Error\n"); - return(NULL); - } memset(data_a, 0, size); - size = w*h; for(file = files, nfile = 0 ; *(file + 1) != NULL ; file++, nfile++) { @@ -1315,7 +1362,8 @@ if((data = imlib_image_get_data()) == NULL) { __IMAGE_AVERAGE_CLEAN_UP; - fprintf(stderr, "Internal Error\n"); + fprintf(stderr, "Could not get image data for " + "averging\n"); return(NULL); } @@ -1332,7 +1380,7 @@ size = w*h*sizeof(DATA32); if((data = (DATA32 *)malloc(size)) == NULL) { __IMAGE_AVERAGE_CLEAN_UP; - fprintf(stderr, "Internal Error\n"); + fprintf(stderr, "Could not allocate memory for averaging\n"); return(NULL); } @@ -1347,7 +1395,7 @@ image = imlib_create_image_using_copied_data(w, h, data); if(image == NULL) { __IMAGE_AVERAGE_CLEAN_UP; - fprintf(stderr, "Internal Error\n"); + fprintf(stderr, "Could not create image for averaging\n"); return(NULL); } @@ -1358,6 +1406,96 @@ } +static int calculate_channel(const char *channel, double *r, double *g, + double *b, double *a) +{ + if(channel == NULL) { + return(-1); + } + + *r = 0; + *g = 0; + *b = 0; + *a = 0; + + if(strcasecmp("red", channel) == 0) { + *r = 1; + } + else if(strcasecmp("green", channel) == 0) { + *g = 1; + } + else if(strcasecmp("blue", channel) == 0) { + *b = 1; + } + else if(strcasecmp("alpha", channel) == 0 || + strcasecmp("matte", channel) == 0) { + *a = 1; + } + else { + return(-1); + } + + return(0); +} + +static Imlib_Image image_channel(Imlib_Image image, const char *channel) +{ + double r; + double g; + double b; + double a; + + if(calculate_channel(channel, &r, &g, &b, &a) < 0) { + return(image); + } + + imlib_context_set_image(image); + + image_gamma_numeric(image, r, g, b, a); + + return(image); +} + + +int calculate_cache(const char *cache) +{ + char *end; + long int l; + + if(cache == NULL) { + return(DEFAULT_CACHE_SIZE); + } + + l = strtol(cache, &end, 10); + if (l < 0 || l > INT_MAX) { + return (-1); + } + + return((int) l); +} + + +static int set_cache(const char *cache) { + int size; + + if((size = calculate_cache(cache)) < 0) { + fprintf(stderr, "Could not determine cache size"); + return(-1); + } + + imlib_set_cache_size(size * 1024 * 1024); + + return(0); +} + + +static int set_antialiasing(const int antialiasing) { + imlib_context_set_anti_alias((char)(antialiasing?0:1)); + + return(0); +} + + int main(int argc, char **argv) { options_t *opt; @@ -1370,6 +1508,19 @@ exit(-1); } + /* Set Antialiasing */ + if (set_antialiasing(opt->bin_ops&__OP_NOANTIALIAS) < 0) { + fprintf(stderr, "Could not set antialiasing\n"); + return (-1); + } + + /* Set Cache Size*/ + if (set_cache(opt->cache) < 0) { + fprintf(stderr, "Could not set cache size\n"); + return (-1); + } + + /* Load first image */ image = imlib_load_image(opt->src); if (image == NULL) { fprintf(stderr, "Could not load %s\n", opt->src); @@ -1386,61 +1537,68 @@ image = image_average(image, opt->bin_ops&__OP_AVERAGE, opt->files); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Averaging failed\n"); return (-1); } /* Blur Image */ if ((image = image_blur(image, opt->blur)) == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Bluring failed\n"); return (-1); } /* Crop Image */ image = image_crop(image, opt->crop, opt->dest, opt->bordercolour); + if (image == NULL) { + fprintf(stderr, "Cropping failed\n"); + return (-1); + } + + /* Channel Image */ + image = image_channel(image, opt->channel); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Channel selection failed\n"); return (-1); } /* Scale Image */ if ((image = image_scale(image, opt->geometry)) == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Scaling (geometry) failed\n"); return (-1); } /* Put a Border on the Image */ image = image_border(image, opt->border, opt->bordercolour); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Border failed\n"); return (-1); } /* Flip the Image Vertically */ image = image_flip(image, opt->bin_ops&__OP_FLIP); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Flip failed\n"); return (-1); } /* Flip the Image Horizontally */ image = image_flop(image, opt->bin_ops&__OP_FLOP); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Flop failed\n"); return (-1); } /* Modify the Gamma of the Image*/ image = image_gamma(image, opt->gamma); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Gamma correction failed\n"); return (-1); } /* Rotate the Image */ image = image_rotate(image, opt->rotate, opt->bordercolour); if (image == NULL) { - fprintf(stderr, "Internal error\n"); + fprintf(stderr, "Rotation failed\n"); return (-1); } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/identify.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- identify.c 2001/11/05 12:33:02 1.1 +++ identify.c 2001/11/06 22:18:59 1.2 @@ -2,8 +2,10 @@ * identify.c November 2001 * Horms ho...@ve... * - * imlib2_identify - * Clone of ImageMagick identify programme that uses Imlib2. + * Clone of ImageMagick's identify programme + * + * imlib2_tools + * Clone of ImageMagick command line programmes using Imlib2. * Copyright (C) 2001 Horms * * Permission is hereby granted, free of charge, to any person |
From: <enl...@li...> - 2001-11-06 22:19:30
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools Modified Files: Makefile.am autogen.sh configure.in Added Files: .cvsignore TODO Log Message: Added some more options and fixed some bugs =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 2001/11/05 12:33:02 1.1 +++ Makefile.am 2001/11/06 22:18:59 1.2 @@ -1 +1,26 @@ +###################################################################### +# Makefile.am November 2001 +# Horms ho...@ve... +# +# imlib2_tools +# Clone of ImageMagick command line programmes using Imlib2. +# Copyright (C) 2001 Horms +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA +# +###################################################################### + SUBDIRS = src =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/autogen.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- autogen.sh 2001/11/05 12:35:49 1.1 +++ autogen.sh 2001/11/06 22:18:59 1.2 @@ -1,5 +1,9 @@ -#! /bin/sh +#!/bin/bash +#Running bash because /bin/sh is a complete piece of shit on solaris +#I wonder how long it will take the fuckwits at Sun to wake up +# Run this to generate all the initial makefiles, etc. + if [ "$USER" = "root" ]; then echo "You cannot do this as "$USER" please use a normal user account" exit @@ -7,33 +11,49 @@ srcdir=`dirname $0` test -z "$srcdir" && srcdir=. + +THEDIR=`pwd` +cd $srcdir -THEDIR="`pwd`" -cd "$srcdir" DIE=0 -set -x -aclocal -libtoolize --ltdl --force --copy -autoconf -autoheader -automake --foreign --add-missing +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have autoconf installed to compile imlib2_convert." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have automake installed to compile imlib2_convert." + echo "Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.2d.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi if test -z "$*"; then - echo "I am going to run ./configure with no arguments - if you wish " + echo "I am going to run ./configure with no arguments - if you wish " echo "to pass any to it, please specify them on the $0 command line." fi -cd "$THEDIR" +case $CC in +xlc ) + am_opt=--include-deps;; +esac + +aclocal $ACLOCAL_FLAGS +(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader +automake --add-missing $am_opt +autoconf +cd $THEDIR $srcdir/configure "$@" - -set +x - -echo "Now type:" -echo -echo "make" -echo "make install" -echo -echo "have fun." +echo +echo "Now type 'make' to compile imlib2_convert." =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/configure.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- configure.in 2001/11/05 12:33:02 1.1 +++ configure.in 2001/11/06 22:18:59 1.2 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/convert.c) AM_CONFIG_HEADER(src/config.h) -AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha0) +AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha1) dnl Checks for programs. AC_PROG_CC |
From: <enl...@li...> - 2001-11-06 22:41:22
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: .cvsignore Log Message: removed stamp-h.in =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- .cvsignore 2001/11/06 22:18:59 1.1 +++ .cvsignore 2001/11/06 22:20:41 1.2 @@ -3,3 +3,4 @@ config.h stamp-h .deps +stamp-h.in |
From: <enl...@li...> - 2001-11-06 22:41:22
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Removed Files: stamp-h.in Log Message: removed stamp-h.in |
From: <enl...@li...> - 2001-11-12 02:41:12
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: Makefile.am convert.c Added Files: dither.c dither.h Log Message: dither to monochrome using floyd-steinberg or an ordred dither =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.am 2001/11/06 22:18:59 1.2 +++ Makefile.am 2001/11/12 02:41:07 1.3 @@ -25,7 +25,7 @@ bin_PROGRAMS = imlib2_convert imlib2_identify -imlib2_convert_SOURCES = convert.c +imlib2_convert_SOURCES = convert.c dither.c imlib2_identify_SOURCES = identify.c =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/convert.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- convert.c 2001/11/06 22:18:59 1.2 +++ convert.c 2001/11/12 02:41:07 1.3 @@ -47,6 +47,8 @@ #include <popt.h> #include <math.h> +#include "dither.h" + #define DEFAULT_CACHE_SIZE 80 /* In megabytes */ #define imlib_context_set_colour(_r, _g, _b, _a) \ @@ -58,11 +60,13 @@ } \ _ptr = NULL; -#define __OP_FLIP 0x0001 -#define __OP_FLOP 0x0002 -#define __OP_FLOP 0x0002 -#define __OP_AVERAGE 0x0004 -#define __OP_NOANTIALIAS 0x0010 +#define __OP_FLIP 0x0001 +#define __OP_FLOP 0x0002 +#define __OP_FLOP 0x0002 +#define __OP_AVERAGE 0x0004 +#define __OP_NOANTIALIAS 0x0010 +#define __OP_MONOCHROME 0x0020 +#define __OP_ORDERED_DITHER 0x0040 typedef struct { const char *blur; @@ -71,7 +75,7 @@ const char *crop; const char *channel; const char *cache; - const char *geometry; + const char *scale; const char *gamma; const char *rotate; int nfiles; @@ -99,12 +103,16 @@ " -channel Red|Green|Blue|Alpha\n" " Matte has the same meaning as Alpha\n" " -coalesce (The same as average)\n" + " -[no]dither Use Floyd Steinberg Dithering instead\n" + " of ordered dithering (default)\n" " -flip\n" " -flop\n" " -gamma <gamma>|<red>/<green>/<blue>[/<alpha>]\n" " -geometry <width>[x<height>][%%][<|>][!]\n" " -help\n" + " -monochrome\n" " -rotate <angle>[<|>]\n" + " -scale <width>[x<height>][%%][<|>][!]\n" "\n", DEFAULT_CACHE_SIZE); @@ -154,7 +162,12 @@ NULL, 'G'}, {"geometry", 'g', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'g'}, + {"scale", 'g', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 'g'}, {"help", 'h', POPT_ARGFLAG_ONEDASH, NULL, 'h'}, + {"monochrome", 'm', POPT_ARGFLAG_ONEDASH, NULL, 'm'}, + {"dither", 'd', POPT_ARGFLAG_ONEDASH, NULL, 'd'}, + {"nodither", 'N', POPT_ARGFLAG_ONEDASH, NULL, 'N'}, {"rotate", 'r', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'r'}, {NULL, 0, 0, NULL, 0} @@ -172,7 +185,7 @@ opt->crop = NULL; opt->bin_ops = 0; opt->gamma = NULL; - opt->geometry = NULL; + opt->scale = NULL; opt->rotate = NULL; opt->src = NULL; opt->dest = NULL; @@ -220,17 +233,26 @@ opt->bin_ops |= __OP_FLOP; break; case 'g': - opt->geometry = optarg; + opt->scale = optarg; break; case 'G': opt->gamma = optarg; break; + case 'h': + usage(0); + break; case 'r': opt->rotate = optarg; break; - case 'h': - usage(0); + case 'm': + opt->bin_ops |= __OP_MONOCHROME; break; + case 'd': + /* Does nothing as this is the default */ + break; + case 'N': + opt->bin_ops |= __OP_ORDERED_DITHER; + break; default: fprintf(stderr, "Unknown option\n\n"); usage(-1); @@ -418,7 +440,7 @@ } if(w == 0 || h == 0) { - fprintf(stderr, "zero dimension for geometry\n"); + fprintf(stderr, "zero dimension for scale\n"); exit(-1); } @@ -482,7 +504,7 @@ } if (*end == '+' || *end == '-') { - flags = 0; + *flags = 0; spec = end + 1; l = strtol(spec, &end, 10); if (l < 0 || l > INT_MAX) { @@ -529,7 +551,7 @@ } if(*w == 0 && *h ==0) { - flags = 0; + *flags = 0; } @@ -1457,6 +1479,23 @@ } +static Imlib_Image image_monochrome(Imlib_Image image, + const int monochrome, const int ordered_dither) +{ + imlib_context_set_image(image); + + if(!monochrome) { + return(image); + } + + if(ordered_dither) { + return(dither_ordered_image(image, 8)); + } + + return(dither_floyd_image(image, DITHER_FLOYD_ALTERNATE)); +} + + int calculate_cache(const char *cache) { char *end; @@ -1562,8 +1601,8 @@ } /* Scale Image */ - if ((image = image_scale(image, opt->geometry)) == NULL) { - fprintf(stderr, "Scaling (geometry) failed\n"); + if ((image = image_scale(image, opt->scale)) == NULL) { + fprintf(stderr, "Scaling failed\n"); return (-1); } @@ -1600,6 +1639,14 @@ if (image == NULL) { fprintf(stderr, "Rotation failed\n"); return (-1); + } + + /* Convert image to monochrome */ + image = image_monochrome(image, opt->bin_ops&__OP_MONOCHROME, + opt->bin_ops&__OP_ORDERED_DITHER); + if(image == NULL) { + fprintf(stderr, "Could not convert image to monochrome\n"); + return(-1); } /* save the image */ |
From: <enl...@li...> - 2001-11-12 02:41:37
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools Modified Files: configure.in Log Message: dither to monochrome using floyd-steinberg or an ordred dither =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/configure.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- configure.in 2001/11/06 22:18:59 1.2 +++ configure.in 2001/11/12 02:41:07 1.3 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/convert.c) AM_CONFIG_HEADER(src/config.h) -AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha1) +AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha2) dnl Checks for programs. AC_PROG_CC |
From: <enl...@li...> - 2001-11-12 02:43:08
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: .cvsignore Log Message: dither to monochrome using floyd-steinberg or an ordred dither =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/.cvsignore,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- .cvsignore 2001/11/06 22:20:41 1.2 +++ .cvsignore 2001/11/12 02:43:07 1.3 @@ -4,3 +4,6 @@ stamp-h .deps stamp-h.in +imlib2_convert +imlib2_identify +*.jpg |
From: <enl...@li...> - 2002-07-30 02:56:44
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: convert.c Log Message: new =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/convert.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- convert.c 12 Nov 2001 02:41:07 -0000 1.3 +++ convert.c 30 Jul 2002 02:56:42 -0000 1.4 @@ -54,6 +54,30 @@ #define imlib_context_set_colour(_r, _g, _b, _a) \ imlib_context_set_color(_r, _g, _b, _a) +#define imlib_create_colour_modifier() \ + imlib_create_color_modifier() + +#define imlib_get_colour_modifier_tables(_r, _g, _b, _a) \ + imlib_get_color_modifier_tables(_r, _g, _b, _a) + +#define imlib_set_colour_modifier_tables(_r, _g, _b, _a) \ + imlib_set_color_modifier_tables(_r, _g, _b, _a) + +#define imlib_context_set_colour_modifier(_m) \ + imlib_context_set_color_modifier(_m) + +#define imlib_reset_colour_modifier() \ + imlib_reset_color_modifier(); + +#define imlib_modify_colour_modifier_gamma(_g) \ + imlib_modify_color_modifier_gamma(_g) + +#define imlib_apply_colour_modifier() \ + imlib_apply_color_modifier() + +#define imlib_free_colour_modifier() \ + imlib_apply_color_modifier() + #define __SAFE_FREE(_ptr) \ if(_ptr!=NULL) { \ free(_ptr); \ @@ -72,9 +96,11 @@ const char *blur; const char *border; const char *bordercolour; + const char *colourise; const char *crop; const char *channel; const char *cache; + const char *fill; const char *scale; const char *gamma; const char *rotate; @@ -103,6 +129,7 @@ " -channel Red|Green|Blue|Alpha\n" " Matte has the same meaning as Alpha\n" " -coalesce (The same as average)\n" + " -colourise <percentage>|<red>/<greem>/><blue>\n" " -[no]dither Use Floyd Steinberg Dithering instead\n" " of ordered dithering (default)\n" " -flip\n" @@ -152,6 +179,10 @@ NULL, 129}, {"cache", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 130}, + {"colourise", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 131}, + {"colorize", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 131}, {"crop", 'c', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'c'}, {"channel", 'C', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, @@ -182,8 +213,10 @@ opt->blur = NULL; opt->border = NULL; opt->bordercolour = NULL; + opt->colourise = NULL; opt->crop = NULL; opt->bin_ops = 0; + opt->fill = NULL; opt->gamma = NULL; opt->scale = NULL; opt->rotate = NULL; @@ -220,6 +253,9 @@ case 130: opt->cache = optarg; break; + case 131: + opt->colourise = optarg; + break; case 'c': opt->crop = optarg; break; @@ -1110,54 +1146,54 @@ return (image); } - if ((modifier = imlib_create_color_modifier()) == NULL) { + if ((modifier = imlib_create_colour_modifier()) == NULL) { fprintf(stderr, "Could not create colour modifier\n"); return (NULL); } - imlib_context_set_color_modifier(modifier); - imlib_reset_color_modifier(); + imlib_context_set_colour_modifier(modifier); + imlib_reset_colour_modifier(); if (r == g && r == b && r == a) { - imlib_modify_color_modifier_gamma(r); + imlib_modify_colour_modifier_gamma(r); } else { - imlib_get_color_modifier_tables(r_table, g_table, b_table, + imlib_get_colour_modifier_tables(r_table, g_table, b_table, a_table); if(r != 1.0) { - imlib_modify_color_modifier_gamma(r); - imlib_get_color_modifier_tables(r_table, dummy_table, + imlib_modify_colour_modifier_gamma(r); + imlib_get_colour_modifier_tables(r_table, dummy_table, dummy_table, dummy_table); - imlib_reset_color_modifier(); + imlib_reset_colour_modifier(); } if(g != 1.0) { - imlib_modify_color_modifier_gamma(g); - imlib_get_color_modifier_tables(dummy_table, g_table, + imlib_modify_colour_modifier_gamma(g); + imlib_get_colour_modifier_tables(dummy_table, g_table, dummy_table, dummy_table); - imlib_reset_color_modifier(); + imlib_reset_colour_modifier(); } if(b != 1.0) { - imlib_modify_color_modifier_gamma(b); - imlib_get_color_modifier_tables(dummy_table, + imlib_modify_colour_modifier_gamma(b); + imlib_get_colour_modifier_tables(dummy_table, dummy_table, b_table, dummy_table); - imlib_reset_color_modifier(); + imlib_reset_colour_modifier(); } if(a != 1.0) { - imlib_modify_color_modifier_gamma(a); - imlib_get_color_modifier_tables(dummy_table, + imlib_modify_colour_modifier_gamma(a); + imlib_get_colour_modifier_tables(dummy_table, dummy_table, dummy_table, a_table); - imlib_reset_color_modifier(); + imlib_reset_colour_modifier(); } - imlib_set_color_modifier_tables(r_table, g_table, b_table, + imlib_set_colour_modifier_tables(r_table, g_table, b_table, a_table); } - imlib_apply_color_modifier(); - imlib_free_color_modifier(); + imlib_apply_colour_modifier(); + imlib_free_colour_modifier(); return (image); } @@ -1496,6 +1532,42 @@ } +#define __IMAGE_COLOURISE_8BIT(i) \ + ((i<0)?0:((i>255)?255:i)) + +static Imlib_Image image_colourise(Imlib_Image image, + const char *colourise, const char *fill) +{ + int r = 255; + int g = 0; + int b = 0; + int rr; + int gg; + int bb; + DATA32 *data; + DATA32 *pixel; + + imlib_context_set_image(image); + + if((data = imlib_image_get_data()) == NULL) { + fprintf(stderr, "could not get image data for colourise\n"); + } + + pixel = data + imlib_image_get_height() * imlib_image_get_width() - 1; + do { + rr = __IMAGE_COLOURISE_8BIT( ( ( *pixel >> 16 ) & 0xff ) + r); + gg = __IMAGE_COLOURISE_8BIT( ( ( *pixel >> 8 ) & 0xff ) + b); + bb = __IMAGE_COLOURISE_8BIT( ( *pixel & 0xff ) + g ); + *pixel = ( *pixel & 0xff000000 ) + ( rr << 16 ) + + ( bb << 8 ) + gg; + } while (pixel-- > data); + + imlib_image_put_back_data(data); + + return(image); +} + + int calculate_cache(const char *cache) { char *end; @@ -1648,6 +1720,8 @@ fprintf(stderr, "Could not convert image to monochrome\n"); return(-1); } + + image = image_colourise(image, NULL, NULL); /* save the image */ imlib_save_image(opt->dest); |
From: <enl...@li...> - 2006-01-04 06:12:21
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/debian Modified Files: changelog control Log Message: Added libimlib2-dev build dependancy for debian packaging =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/debian/changelog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- changelog 12 Nov 2001 13:53:30 -0000 1.1 +++ changelog 4 Jan 2006 06:12:14 -0000 1.2 @@ -1,3 +1,9 @@ +imlib2-tools (0.0.0alpha2-0cvs2005010400) unstable; urgency=low + + * Added build dependancy on libimlib2-dev + + -- Simon Horman <ho...@ve...> Wed, 4 Jan 2006 14:51:25 +0900 + imlib2-tools (0.0.0alpha2-0cvs2001112001) unstable; urgency=low * a CVS release =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/debian/control,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- control 12 Nov 2001 13:53:30 -0000 1.1 +++ control 4 Jan 2006 06:12:14 -0000 1.2 @@ -2,7 +2,7 @@ Section: graphics Priority: optional Maintainer: Laurence J. Lane <lj...@de...> -Build-Depends: libpopt-dev, debhelper (>= 3.0) +Build-Depends: libimlib2-dev, libpopt-dev, debhelper (>= 3.0) Standards-Version: 3.5.6.0 Package: imlib2-tools |
From: <enl...@li...> - 2006-01-04 06:12:50
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools Modified Files: configure.in Log Message: Added libimlib2-dev build dependancy for debian packaging =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/configure.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- configure.in 18 Sep 2003 23:28:30 -0000 1.5 +++ configure.in 4 Jan 2006 06:12:14 -0000 1.6 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/convert.c) AM_CONFIG_HEADER(src/config.h) -AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha2) +AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha3) dnl Checks for programs. AC_PROG_CC |
From: <enl...@li...> - 2006-01-04 06:16:55
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/debian Modified Files: changelog Log Message: Wrong year =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/debian/changelog,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- changelog 4 Jan 2006 06:12:14 -0000 1.2 +++ changelog 4 Jan 2006 06:16:47 -0000 1.3 @@ -1,4 +1,4 @@ -imlib2-tools (0.0.0alpha2-0cvs2005010400) unstable; urgency=low +imlib2-tools (0.0.0alpha2-0cvs2006010400) unstable; urgency=low * Added build dependancy on libimlib2-dev |
From: <enl...@li...> - 2006-01-07 12:27:34
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: convert.c Log Message: Add quality and compression options =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/convert.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- convert.c 4 Sep 2003 00:25:30 -0000 1.5 +++ convert.c 7 Jan 2006 12:27:27 -0000 1.6 @@ -50,6 +50,8 @@ #include "dither.h" #define DEFAULT_CACHE_SIZE 80 /* In megabytes */ +#define DEFAULT_QUALITY 75 +#define DEFAULT_COMPRESSION 3 #define imlib_context_set_colour(_r, _g, _b, _a) \ imlib_context_set_color(_r, _g, _b, _a) @@ -97,6 +99,7 @@ const char *border; const char *bordercolour; const char *colourise; + int compression; const char *crop; const char *channel; const char *cache; @@ -104,6 +107,7 @@ const char *scale; const char *gamma; const char *rotate; + int quality; int nfiles; const char **files; const char *src; @@ -130,6 +134,8 @@ " Matte has the same meaning as Alpha\n" " -coalesce (The same as average)\n" " -colourise <percentage>|<red>/<greem>/><blue>\n" + " -compressoion <integer>\n" + " Must be between 1 and 9. (default is %d)\n" " -[no]dither Use Floyd Steinberg Dithering instead\n" " of ordered dithering (default)\n" " -flip\n" @@ -138,10 +144,19 @@ " -geometry <width>[x<height>][%%][<|>][!]\n" " -help\n" " -monochrome\n" + " -quality <integer>\n" + " Must be between 1 and 99. (default is %d)\n" " -rotate <angle>[<|>]\n" " -scale <width>[x<height>][%%][<|>][!]\n" + "\n" + " -compression and -quality only only affect saving to image\n" + " formats whose loader supoorts this option. Currently jpeg\n" + " and png. Internally they are much the same thing, and its\n" + " usual to use -compression for png and -quality for jpeg.\n" + " Accordinlgy, internally, -compression takes prefereance\n" + " over -quality for png, and vice-versa for jpeg.\n" "\n", - DEFAULT_CACHE_SIZE); + DEFAULT_CACHE_SIZE, DEFAULT_COMPRESSION, DEFAULT_QUALITY); exit(exit_status); } @@ -183,6 +198,8 @@ NULL, 131}, {"colorize", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 131}, + {"compression", '\0', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 132}, {"crop", 'c', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'c'}, {"channel", 'C', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, @@ -199,6 +216,8 @@ {"monochrome", 'm', POPT_ARGFLAG_ONEDASH, NULL, 'm'}, {"dither", 'd', POPT_ARGFLAG_ONEDASH, NULL, 'd'}, {"nodither", 'N', POPT_ARGFLAG_ONEDASH, NULL, 'N'}, + {"quality", 'q', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, + NULL, 'q'}, {"rotate", 'r', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'r'}, {NULL, 0, 0, NULL, 0} @@ -214,11 +233,13 @@ opt->border = NULL; opt->bordercolour = NULL; opt->colourise = NULL; + opt->compression = DEFAULT_COMPRESSION; opt->crop = NULL; opt->bin_ops = 0; opt->fill = NULL; opt->gamma = NULL; opt->scale = NULL; + opt->quality = DEFAULT_QUALITY; opt->rotate = NULL; opt->src = NULL; opt->dest = NULL; @@ -256,6 +277,11 @@ case 131: opt->colourise = optarg; break; + case 132: + opt->compression = atoi(optarg); + if (opt->compression < 1 || opt->compression > 9) + usage(-1); + break; case 'c': opt->crop = optarg; break; @@ -277,6 +303,11 @@ case 'h': usage(0); break; + case 'q': + opt->quality = atoi(optarg); + if (opt->quality < 1 || opt->quality > 99) + usage(-1); + break; case 'r': opt->rotate = optarg; break; @@ -1723,6 +1754,10 @@ #if 0 /* this just makes the image red.. well now it doesnt.. */ image = image_colourise(image, NULL, NULL); #endif + + imlib_image_attach_data_value("quality", NULL, opt->quality, NULL); + imlib_image_attach_data_value("compression", NULL, opt->compression, + NULL); /* save the image */ imlib_save_image(opt->dest); |
From: <enl...@li...> - 2006-01-07 12:31:03
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools Modified Files: configure.ac Log Message: alpha3 =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/configure.ac,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- configure.ac 18 Sep 2003 23:28:30 -0000 1.4 +++ configure.ac 7 Jan 2006 12:30:56 -0000 1.5 @@ -2,7 +2,7 @@ AC_INIT AC_CONFIG_SRCDIR([src/convert.c]) AM_CONFIG_HEADER(src/config.h) -AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha2) +AM_INIT_AUTOMAKE(imlib2_tools, 0.0.0alpha3) dnl Checks for programs. AC_PROG_CC |
From: <enl...@li...> - 2006-01-07 12:31:32
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/debian Modified Files: changelog Log Message: alpha3 =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/debian/changelog,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- changelog 4 Jan 2006 06:16:47 -0000 1.3 +++ changelog 7 Jan 2006 12:30:56 -0000 1.4 @@ -1,3 +1,9 @@ +imlib2-tools (0.0.0alpha3-0cvs2006010700) unstable; urgency=low + + * Now with quality and compression options :) + + -- Simon Horman <ho...@ve...> Sat, 7 Jan 2006 21:28:12 +0900 + imlib2-tools (0.0.0alpha2-0cvs2006010400) unstable; urgency=low * Added build dependancy on libimlib2-dev |
From: <enl...@li...> - 2006-01-10 14:19:49
|
Enlightenment CVS committal Author : horms Project : e17 Module : apps/imlib2_tools Dir : e17/apps/imlib2_tools/src Modified Files: convert.c Log Message: clarify -dither =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/imlib2_tools/src/convert.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- convert.c 7 Jan 2006 12:27:27 -0000 1.6 +++ convert.c 10 Jan 2006 14:19:44 -0000 1.7 @@ -134,7 +134,7 @@ " Matte has the same meaning as Alpha\n" " -coalesce (The same as average)\n" " -colourise <percentage>|<red>/<greem>/><blue>\n" - " -compressoion <integer>\n" + " -compression <integer>\n" " Must be between 1 and 9. (default is %d)\n" " -[no]dither Use Floyd Steinberg Dithering instead\n" " of ordered dithering (default)\n" @@ -155,6 +155,9 @@ " usual to use -compression for png and -quality for jpeg.\n" " Accordinlgy, internally, -compression takes prefereance\n" " over -quality for png, and vice-versa for jpeg.\n" + "\n" + " -[no]dither currently affects images when used in\n" + " conjunction with the -monocrome option\n" "\n", DEFAULT_CACHE_SIZE, DEFAULT_COMPRESSION, DEFAULT_QUALITY); |