]> bicyclesonthemoon.info Git - ott/enhance/blobdiff - info.c
makefile cleanup and safety (don't rm -rf)
[ott/enhance] / info.c
diff --git a/info.c b/info.c
index 1817104ba1ef11aef62de652c230b722d49234b2..d1ae427e447450bc61f800c65787830b6b52d9d5 100644 (file)
--- a/info.c
+++ b/info.c
@@ -1,7 +1,7 @@
 /*
 info.c
 Get information
-06.11.2022
+13.11.2022
 
 Copyright (C) 2022  Balthasar SzczepaƄski
 
@@ -160,32 +160,32 @@ void print_info_palettetype (char *name, long unsigned value)
        fputs("\n", stdout);
 }
 
-int info (int argc, char **argv, char **err)
+int subtool_info (int argc, char **argv, int argi, char **err)
 {
        int r;
        int i;
        ILint j;
        ILint frames=1;
        struct IL_full_info info;
+       FLAG_TYPE flags = OK_PALETTE_ONLY | CAN_BE_MULTIPLE | CAN_BE_OVER_8BIT;
        
-       if (argc<1)
+       if (argc <= argi)
        {
                *err = INFO_MISSING_ARGS;
                return EINVAL;
        }
        
-       r = create_pictures(1);
+       r = reserve_pictures(1);
        if (r)
        {
                *err = CREATE_FAILED;
                return r;
        }
        
-       for (i=0; i<argc; ++i)
+       for (i=argi; i<argc; ++i)
        {
                fprintf(stdout,"\n>>> %s <<<\n",argv[i]);
-               r = load_picture(0, argv[i],
-                       OK_PALETTE_ONLY | CAN_BE_MULTIPLE | CAN_BE_OVER_8BIT);
+               r = load_picture(0, argv[i], &info, &flags);
                if (r)
                {
                        fputs("FAIL\n",stdout);
@@ -247,170 +247,3 @@ int info (int argc, char **argv, char **err)
        return 0;
 }
 
-/*
-
-#define INPIX_MUSTARD 1
-#define OUTPIX_MUSTARD 2
-
-#define ARGUMENT_MUSTARD 4
-
-#define ANIMATED_MUSTARD 6
-#define FAIL 900
-#define OK 0
-
-#define CR newdata[4*(i+inX*j)+0]
-#define CG newdata[4*(i+inX*j)+1]
-#define CB newdata[4*(i+inX*j)+2]
-
-#define RA ((long)(*ra))
-#define RB ((long)(*rb))
-#define GA ((long)(*ga))
-#define GB ((long)(*gb))
-#define BA ((long)(*ba))
-#define BB ((long)(*bb))
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <IL/il.h>
-
-void mustard(int mustard);
-
-ILubyte enhance(ILubyte x, long r, long s, long t);
-int main (int argc, const char *argv[]);
-
-ILuint pix;
-ILboolean q=true;
-ILboolean pixOpen=false;
-ILboolean allchannels=false;
-
-ILubyte enhance(ILubyte x, long A, long B)
-{
-       if(A==B)
-               return x;
-       long y=(((long)x)-A)*255/(B-A);
-       return (ILubyte)((y>255)?255:((y<0)?0:y));
-}
-
-int main (int argc, const char *argv[])
-{
-       ILubyte rav, rbv, gav, gbv, bav, bbv;
-       ILubyte *ra, *rb, *ga, *gb, *ba, *bb;
-       ILuint inX, inY, frame;
-       ILubyte *newdata;
-       
-       if(argc<3)
-               mustard(ARGUMENT_MUSTARD);
-       if (argc>=4)
-       {
-               sscanf(argv[3],"%u",&frame);
-       }
-       else
-               frame=0;
-       if (argc>=5)
-       {
-               if (argv[4][0]=='q' || argv[4][0]=='Q')
-                       q=false;
-       }
-       if (argc>=6)
-       {
-               if (argv[5][0]=='a' || argv[5][0]=='A')
-                       allchannels=true;
-       }
-       
-       ra=&rav;
-       rb=&rbv;
-       if(allchannels)
-       {
-               ga=&gav;
-               gb=&gbv;
-               ba=&bav;
-               bb=&bbv;
-       }
-       else
-       {
-               ga=&rav;
-               gb=&rbv;
-               ba=&rav;
-               bb=&rbv;
-       }
-       
-       ilInit();
-       if(!ilEnable(IL_ORIGIN_SET))mustard(FAIL);
-       if(!ilEnable(IL_FILE_OVERWRITE))mustard(FAIL);
-       ilClearColour(255,255,0,0);
-       ilGenImages(1, &pix);
-       pixOpen=true;
-       ilBindImage(pix);
-       if(!ilLoadImage(argv[1]))mustard(INPIX_MUSTARD);
-       if(!ilConvertImage(IL_RGBA,IL_UNSIGNED_BYTE))mustard(INPIX_MUSTARD);
-       
-       inX=ilGetInteger(IL_IMAGE_WIDTH);
-       inY=ilGetInteger(IL_IMAGE_HEIGHT);
-       if(ilGetInteger(IL_NUM_IMAGES)>1)
-               mustard(ANIMATED_MUSTARD);
-       
-       newdata=ilGetData();
-       
-       *ra=255;
-       *ga=255;
-       *ba=255;
-       *rb=0;
-       *gb=0;
-       *bb=0;
-       
-       for(unsigned long i=frame;i<inX-frame;++i)
-       {
-               for(unsigned long j=frame;j<inY-frame;++j)
-               {
-                       if(CR<*ra)
-                               *ra=CR;
-                       if(CR>*rb)
-                               *rb=CR;
-                       if(CG<*ga)
-                               *ga=CG;
-                       if(CG>*gb)
-                               *gb=CG;
-                       if(CB<*ba)
-                               *ba=CB;
-                       if(CB>*bb)
-                               *bb=CB;
-               }
-       }
-                       
-       for(unsigned long i=frame;i<inX-frame;++i)
-       {
-               for(unsigned long j=frame;j<inY-frame;++j)
-               {
-                       
-                       CR=enhance(CR,RA,RB);
-                       CG=enhance(CG,GA,GB);
-                       CB=enhance(CB,BA,BB);
-               }
-       }
-       if(!ilSave(IL_PNG,argv[2]))mustard(OUTPIX_MUSTARD);
-       // no mustard
-       mustard(0);
-}
-
-void mustard(int mustard)
-{
-       switch(mustard)
-       {
-       case 0:
-               if(q) printf("ENHANCED!\n");break;
-       case ARGUMENT_MUSTARD:
-               if(q) printf("nofadig inPix outPix [framesize] [q] [a]\n");break;
-       case INPIX_MUSTARD:
-               if(q) printf("inPIX mustard.\n");break;
-       case OUTPIX_MUSTARD:
-               if(q) printf("outPIX mustard.\n");break;
-       case ANIMATED_MUSTARD:
-               if(q) printf("Animation is mustard.\n");break;
-       default:
-               if (q) printf("Ch*rpin* mustard mustaard!\n");
-       }
-       if(pixOpen)
-               ilDeleteImages(1, &pix);
-       exit(mustard);
-}
-*/