more compile options.. allow image sot be FORCIBLY rescaled so u can include

like 1/2 or 1/4 res images to make a smaller .eet :)


SVN revision: 11825
This commit is contained in:
Carsten Haitzler 2004-10-10 11:58:43 +00:00
parent 0a7178b883
commit 2820c696d4
3 changed files with 73 additions and 6 deletions

View File

@ -14,6 +14,9 @@ int no_comp = 0;
int no_raw = 0;
int min_quality = 0;
int max_quality = 100;
int scale_lossy = 100;
int scale_comp = 100;
int scale_raw = 100;
static void
main_help(void)
@ -28,10 +31,13 @@ main_help(void)
"-fd font/directory Add a directory to look in for relative path fonts\n"
"-v Verbose output\n"
"-no-lossy Do NOT allow images to be lossy\n"
"-no-comp Do NOT allow images to be lossless compression\n"
"-no-raw Do NOT allow images to be zero compression\n"
"-no-comp Do NOT allow images to be stored with lossless compression\n"
"-no-raw Do NOT allow images to be stored with zero compression (raw)\n"
"-min-quality VAL Do NOT allow lossy images with quality < VAL (0-100)\n"
"-max-quality VAL Do NOT allow lossy images with quality > VAL (0-100)\n"
"-scale-lossy VAL Scale lossy image pixels by this percentage factor (0 - 100)\n"
"-scale-comp VAL Scale lossless compressed image pixels by this percentage factor (0 - 100)\n"
"-scale-raw VAL Scale uncompressed (raw) image pixels by this percentage factor (0 - 100)\n"
,progname);
}
@ -68,28 +74,49 @@ main(int argc, char **argv)
}
else if ((!strcmp(argv[i], "-id")) && (i < (argc - 1)))
{
i++;
i++;
img_dirs = evas_list_append(img_dirs, argv[i]);
}
else if ((!strcmp(argv[i], "-fd")) && (i < (argc - 1)))
{
i++;
i++;
fnt_dirs = evas_list_append(fnt_dirs, argv[i]);
}
else if ((!strcmp(argv[i], "-min-quality")) && (i < (argc - 1)))
{
i++;
i++;
min_quality = atoi(argv[i]);
if (min_quality < 0) min_quality = 0;
if (min_quality > 100) min_quality = 100;
}
else if ((!strcmp(argv[i], "-max-quality")) && (i < (argc - 1)))
{
i++;
i++;
max_quality = atoi(argv[i]);
if (max_quality < 0) max_quality = 0;
if (max_quality > 100) max_quality = 100;
}
else if ((!strcmp(argv[i], "-scale-lossy")) && (i < (argc - 1)))
{
i++;
scale_lossy = atoi(argv[i]);
if (scale_lossy < 0) scale_lossy = 0;
if (scale_lossy > 100) scale_lossy = 100;
}
else if ((!strcmp(argv[i], "-scale-comp")) && (i < (argc - 1)))
{
i++;
scale_comp = atoi(argv[i]);
if (scale_comp < 0) scale_comp = 0;
if (scale_comp > 100) scale_comp = 100;
}
else if ((!strcmp(argv[i], "-scale-raw")) && (i < (argc - 1)))
{
i++;
scale_raw = atoi(argv[i]);
if (scale_raw < 0) scale_raw = 0;
if (scale_raw > 100) scale_raw = 100;
}
else if (!file_in)
file_in = argv[i];
else if (!file_out)

View File

@ -133,6 +133,9 @@ extern int no_comp;
extern int no_raw;
extern int min_quality;
extern int max_quality;
extern int scale_lossy;
extern int scale_comp;
extern int scale_raw;
extern int line;
extern Evas_List *stack;
extern Evas_List *params;

View File

@ -261,6 +261,43 @@ data_write(void)
imlib_context_set_image(im);
im_w = imlib_image_get_width();
im_h = imlib_image_get_height();
if ((img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_PERFECT) &&
(img->source_param == 0) &&
(scale_raw != 100))
{
im = imlib_create_cropped_scaled_image(0, 0,
im_w, im_h,
(im_w * scale_raw) / 100,
(im_h * scale_raw) / 100);
imlib_free_image();
imlib_context_set_image(im);
im_w = imlib_image_get_width();
im_h = imlib_image_get_height();
}
else if ((img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_PERFECT) &&
(img->source_param == 1) &&
(scale_comp != 100))
{
im = imlib_create_cropped_scaled_image(0, 0,
im_w, im_h,
(im_w * scale_comp) / 100,
(im_h * scale_comp) / 100);
imlib_free_image();
imlib_context_set_image(im);
im_w = imlib_image_get_width();
im_h = imlib_image_get_height();
}
else if (scale_lossy != 100)
{
im = imlib_create_cropped_scaled_image(0, 0,
im_w, im_h,
(im_w * scale_lossy) / 100,
(im_h * scale_lossy) / 100);
imlib_free_image();
imlib_context_set_image(im);
im_w = imlib_image_get_width();
im_h = imlib_image_get_height();
}
im_alpha = imlib_image_has_alpha();
im_data = imlib_image_get_data_for_reading_only();
if ((im_data) && (im_w > 0) && (im_h > 0))