/*
info.c
Get information
-06.11.2022
+13.11.2022
Copyright (C) 2022 Balthasar SzczepaĆski
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);
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);
-}
-*/