--- a/configure.ac +++ b/configure.ac @@ -58,9 +58,6 @@ AC_ARG_WITH([tools], [AS_HELP_STRING([-- [build_tools=$withval], [build_tools=yes]) AM_CONDITIONAL(BUILD_TOOLS, [test "x$build_tools" = "xyes" ]) -if test x$build_tools = xyes ; then - PKG_CHECK_MODULES(png, "libpng") -fi dnl --with-tests AC_ARG_WITH([tests], [AS_HELP_STRING([--with-tests], [build tests [default=no]])], --- a/qrenc.c +++ b/qrenc.c @@ -25,7 +25,6 @@ #include #include #include -#include #include #include "qrencode.h" @@ -49,7 +48,6 @@ static unsigned int bg_color[4] = {255, static int verbose = 0; enum imageType { - PNG_TYPE, EPS_TYPE, SVG_TYPE, ANSI_TYPE, @@ -60,7 +58,7 @@ enum imageType { ANSIUTF8_TYPE }; -static enum imageType image_type = PNG_TYPE; +static enum imageType image_type = SVG_TYPE; static const struct option options[] = { {"help" , no_argument , NULL, 'h'}, @@ -96,13 +94,13 @@ static void usage(int help, int longopt) if(longopt) { fprintf(stderr, "Usage: qrencode [OPTION]... [STRING]\n" -"Encode input data in a QR Code and save as a PNG or EPS image.\n\n" +"Encode input data in a QR Code and save as a SVG or EPS image.\n\n" " -h, --help display the help message. -h displays only the help of short\n" " options.\n\n" " -o FILENAME, --output=FILENAME\n" " write image to FILENAME. If '-' is specified, the result\n" " will be output to standard output. If -S is given, structured\n" -" symbols are written to FILENAME-01.png, FILENAME-02.png, ...\n" +" symbols are written to FILENAME-01.svg, FILENAME-02.svg, ...\n" " (suffix is removed from FILENAME, if specified)\n" " -s NUMBER, --size=NUMBER\n" " specify module size in dots (pixels). (default=3)\n\n" @@ -116,9 +114,9 @@ static void usage(int help, int longopt) " specify the width of the margins. (default=4 (2 for Micro QR)))\n\n" " -d NUMBER, --dpi=NUMBER\n" " specify the DPI of the generated PNG. (default=72)\n\n" -" -t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}, --type={PNG,EPS,\n" +" -t {EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}, --type={EPS,\n" " SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}\n" -" specify the type of the generated image. (default=PNG)\n\n" +" specify the type of the generated image. (default=SVG)\n\n" " -S, --structured\n" " make structured symbols. Version must be specified.\n\n" " -k, --kanji assume that the input text contains kanji (shift-jis).\n\n" @@ -133,7 +131,7 @@ static void usage(int help, int longopt) " --background=RRGGBB[AA]\n" " specify foreground/background color in hexadecimal notation.\n" " 6-digit (RGB) or 8-digit (RGBA) form are supported.\n" -" Color output support available only in PNG and SVG.\n" +" Color output support available only in SVG.\n" " -V, --version\n" " display the version number and copyrights of the qrencode.\n\n" " --verbose\n" @@ -153,12 +151,12 @@ static void usage(int help, int longopt) } else { fprintf(stderr, "Usage: qrencode [OPTION]... [STRING]\n" -"Encode input data in a QR Code and save as a PNG or EPS image.\n\n" +"Encode input data in a QR Code and save as a SVG or EPS image.\n\n" " -h display this message.\n" " --help display the usage of long options.\n" " -o FILENAME write image to FILENAME. If '-' is specified, the result\n" " will be output to standard output. If -S is given, structured\n" -" symbols are written to FILENAME-01.png, FILENAME-02.png, ...\n" +" symbols are written to FILENAME-01.svg, FILENAME-02.svg, ...\n" " (suffix is removed from FILENAME, if specified)\n" " -s NUMBER specify module size in dots (pixels). (default=3)\n" " -l {LMQH} specify error correction level from L (lowest) to H (highest).\n" @@ -166,8 +164,8 @@ static void usage(int help, int longopt) " -v NUMBER specify the version of the symbol. (default=auto)\n" " -m NUMBER specify the width of the margins. (default=4 (2 for Micro))\n" " -d NUMBER specify the DPI of the generated PNG. (default=72)\n" -" -t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}\n" -" specify the type of the generated image. (default=PNG)\n" +" -t {EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}\n" +" specify the type of the generated image. (default=SVG)\n" " -S make structured symbols. Version must be specified.\n" " -k assume that the input text contains kanji (shift-jis).\n" " -c encode lower-case alphabet characters in 8-bit mode. (default)\n" @@ -178,7 +176,7 @@ static void usage(int help, int longopt) " --background=RRGGBB[AA]\n" " specify foreground/background color in hexadecimal notation.\n" " 6-digit (RGB) or 8-digit (RGBA) form are supported.\n" -" Color output support available only in PNG and SVG.\n" +" Color output support available only in SVG.\n" " -V display the version number and copyrights of the qrencode.\n" " [STRING] input data. If it is not specified, data will be taken from\n" " standard input.\n" @@ -253,128 +251,6 @@ static FILE *openFile(const char *outfil return fp; } -static int writePNG(QRcode *qrcode, const char *outfile) -{ - static FILE *fp; // avoid clobbering by setjmp. - png_structp png_ptr; - png_infop info_ptr; - png_colorp palette; - png_byte alpha_values[2]; - unsigned char *row, *p, *q; - int x, y, xx, yy, bit; - int realwidth; - - realwidth = (qrcode->width + margin * 2) * size; - row = (unsigned char *)malloc((realwidth + 7) / 8); - if(row == NULL) { - fprintf(stderr, "Failed to allocate memory.\n"); - exit(EXIT_FAILURE); - } - - if(outfile[0] == '-' && outfile[1] == '\0') { - fp = stdout; - } else { - fp = fopen(outfile, "wb"); - if(fp == NULL) { - fprintf(stderr, "Failed to create file: %s\n", outfile); - perror(NULL); - exit(EXIT_FAILURE); - } - } - - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - if(png_ptr == NULL) { - fprintf(stderr, "Failed to initialize PNG writer.\n"); - exit(EXIT_FAILURE); - } - - info_ptr = png_create_info_struct(png_ptr); - if(info_ptr == NULL) { - fprintf(stderr, "Failed to initialize PNG write.\n"); - exit(EXIT_FAILURE); - } - - if(setjmp(png_jmpbuf(png_ptr))) { - png_destroy_write_struct(&png_ptr, &info_ptr); - fprintf(stderr, "Failed to write PNG image.\n"); - exit(EXIT_FAILURE); - } - - palette = (png_colorp) malloc(sizeof(png_color) * 2); - if(palette == NULL) { - fprintf(stderr, "Failed to allocate memory.\n"); - exit(EXIT_FAILURE); - } - palette[0].red = fg_color[0]; - palette[0].green = fg_color[1]; - palette[0].blue = fg_color[2]; - palette[1].red = bg_color[0]; - palette[1].green = bg_color[1]; - palette[1].blue = bg_color[2]; - alpha_values[0] = fg_color[3]; - alpha_values[1] = bg_color[3]; - png_set_PLTE(png_ptr, info_ptr, palette, 2); - png_set_tRNS(png_ptr, info_ptr, alpha_values, 2, NULL); - - png_init_io(png_ptr, fp); - png_set_IHDR(png_ptr, info_ptr, - realwidth, realwidth, - 1, - PNG_COLOR_TYPE_PALETTE, - PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, - PNG_FILTER_TYPE_DEFAULT); - png_set_pHYs(png_ptr, info_ptr, - dpi * INCHES_PER_METER, - dpi * INCHES_PER_METER, - PNG_RESOLUTION_METER); - png_write_info(png_ptr, info_ptr); - - /* top margin */ - memset(row, 0xff, (realwidth + 7) / 8); - for(y=0; ydata; - for(y=0; ywidth; y++) { - bit = 7; - memset(row, 0xff, (realwidth + 7) / 8); - q = row; - q += margin * size / 8; - bit = 7 - (margin * size % 8); - for(x=0; xwidth; x++) { - for(xx=0; xxcode, filename); - break; case EPS_TYPE: writeEPS(p->code, filename); break; @@ -1062,9 +929,7 @@ int main(int argc, char **argv) } break; case 't': - if(strcasecmp(optarg, "png") == 0) { - image_type = PNG_TYPE; - } else if(strcasecmp(optarg, "eps") == 0) { + if(strcasecmp(optarg, "eps") == 0) { image_type = EPS_TYPE; } else if(strcasecmp(optarg, "svg") == 0) { image_type = SVG_TYPE; @@ -1133,11 +998,6 @@ int main(int argc, char **argv) exit(EXIT_SUCCESS); } - if(outfile == NULL && image_type == PNG_TYPE) { - fprintf(stderr, "No output filename is given.\n"); - exit(EXIT_FAILURE); - } - if(optind < argc) { intext = (unsigned char *)argv[optind]; length = strlen((char *)intext); --- a/configure +++ b/configure @@ -12646,100 +12646,6 @@ else BUILD_TOOLS_FALSE= fi -if test x$build_tools = xyes ; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for png" >&5 -$as_echo_n "checking for png... " >&6; } - -if test -n "$png_CFLAGS"; then - pkg_cv_png_CFLAGS="$png_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng\"\""; } >&5 - ($PKG_CONFIG --exists --print-errors ""libpng"") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_png_CFLAGS=`$PKG_CONFIG --cflags ""libpng"" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$png_LIBS"; then - pkg_cv_png_LIBS="$png_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng\"\""; } >&5 - ($PKG_CONFIG --exists --print-errors ""libpng"") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_png_LIBS=`$PKG_CONFIG --libs ""libpng"" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - png_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs ""libpng"" 2>&1` - else - png_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs ""libpng"" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$png_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements (\"libpng\") were not met: - -$png_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables png_CFLAGS -and png_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables png_CFLAGS -and png_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - png_CFLAGS=$pkg_cv_png_CFLAGS - png_LIBS=$pkg_cv_png_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi -fi - # Check whether --with-tests was given. if test "${with_tests+set}" = set; then :