Browse Source

* Add the --scale flag. Resizes the image like --geometry, except with

relative parameters.

git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2716 92316355-f0b4-4df1-b90c-862c8a59935f
remotes/tiles
sam 16 years ago
parent
commit
edd4a03a1e
2 changed files with 33 additions and 0 deletions
  1. +25
    -0
      pipi/context.c
  2. +8
    -0
      src/pipi.c

+ 25
- 0
pipi/context.c View File

@@ -167,6 +167,31 @@ int pipi_command(pipi_context_t *ctx, char const *cmd, ...)
pipi_free(src);
ctx->images[ctx->nimages - 1] = dst;
}
else if(!strcmp(cmd, "scale"))
{
pipi_image_t *src, *dst;
char const *arg;
va_list ap;
double scale;
int w, h;

if(ctx->nimages < 1)
return -1;
src = ctx->images[ctx->nimages - 1];
va_start(ap, cmd);
arg = va_arg(ap, char const *);
va_end(ap);
scale = atof(arg);
w = (int)(scale * src->w + 0.5);
h = (int)(scale * src->h + 0.5);
if(w <= 0 || h <= 0)
return -1;
dst = pipi_resize(src, w, h);
if(dst == NULL)
return -1;
pipi_free(src);
ctx->images[ctx->nimages - 1] = dst;
}
else if(!strcmp(cmd, "mean"))
{
pipi_image_t *dst;


+ 8
- 0
src/pipi.c View File

@@ -25,6 +25,14 @@ int main(int argc, char *argv[])
if(pipi_command(ctx, "swap") != 0)
return EXIT_FAILURE;
}
else if(!strcmp(argv[0], "--scale"))
{
if(argv[1] == NULL)
return EXIT_FAILURE;
if(pipi_command(ctx, "scale", argv[1]) != 0)
return EXIT_FAILURE;
argv++;
}
else if(!strcmp(argv[0], "--geometry"))
{
if(argv[1] == NULL)


Loading…
Cancel
Save