--- ../jpeg-6b-orig/cjpeg.c 1998-03-21 10:21:49 +0900 +++ cjpeg.c 2007-12-25 00:43:24 +0900 @@ -160,6 +160,10 @@ #ifdef TARGA_SUPPORTED fprintf(stderr, " -targa Input file is Targa format (usually not needed)\n"); #endif + fprintf(stderr, " -xdpi N Specify X resolution in dots per inch\n"); + fprintf(stderr, " -ydpi N Specify Y resolution in dots per inch\n"); + fprintf(stderr, " -xdpcm N Specify X resolution in dots per centimeter\n"); + fprintf(stderr, " -ydpcm N Specify Y resolution in dots per centimeter\n"); fprintf(stderr, "Switches for advanced users:\n"); #ifdef DCT_ISLOW_SUPPORTED fprintf(stderr, " -dct int Use integer DCT method%s\n", @@ -411,6 +415,58 @@ /* Input file is Targa format. */ is_targa = TRUE; + } else if (keymatch(arg, "xdpi", 4)) { + /* Set dots per inch on the X axis. */ + int val; + + if (++argn >= argc) /* advance to next argument */ + usage(); + if (sscanf(argv[argn], "%d", &val) != 1) + usage(); + if (val < 1 || val > 65535) + usage(); + cinfo->density_unit = 1; /* density in dots per inch */ + cinfo->X_density = val; + + } else if (keymatch(arg, "ydpi", 4)) { + /* Set dots per inch on the Y axis. */ + int val; + + if (++argn >= argc) /* advance to next argument */ + usage(); + if (sscanf(argv[argn], "%d", &val) != 1) + usage(); + if (val < 1 || val > 65535) + usage(); + cinfo->density_unit = 1; /* density in dots per inch */ + cinfo->Y_density = val; + + } else if (keymatch(arg, "xdpcm", 4)) { + /* Set dots per centimeter on the X axis. */ + int val; + + if (++argn >= argc) /* advance to next argument */ + usage(); + if (sscanf(argv[argn], "%d", &val) != 1) + usage(); + if (val < 1 || val > 65535) + usage(); + cinfo->density_unit = 2; /* density in dots per centimeter */ + cinfo->X_density = val; + + } else if (keymatch(arg, "ydpcm", 4)) { + /* Set dots per centimeter on the Y axis. */ + int val; + + if (++argn >= argc) /* advance to next argument */ + usage(); + if (sscanf(argv[argn], "%d", &val) != 1) + usage(); + if (val < 1 || val > 65535) + usage(); + cinfo->density_unit = 2; /* density in dots per centimeter */ + cinfo->Y_density = val; + } else { usage(); /* bogus switch */ }