diff options
| author | iceyrazor <iceyrazor@mailfence.com> | 2026-05-24 16:25:25 -0500 |
|---|---|---|
| committer | iceyrazor <iceyrazor@mailfence.com> | 2026-05-24 16:25:25 -0500 |
| commit | dc3fa45852737a0ab5bbd40607ec2d242a75137c (patch) | |
| tree | 287ca8762d11a7dce766ecee23836d7cb405f4ee | |
| parent | 487bca9d3df513cb50a4035a66aed7299730d2d6 (diff) | |
removed unused stuff
| -rwxr-xr-x | src/main.c | 103 |
1 files changed, 87 insertions, 16 deletions
@@ -52,6 +52,7 @@ typedef struct{ char *export_name; bool print; float brightness; + bool printMultiColorVars; } Pargs; void arg_interpet(char *argv[], Pargs *pargs){ @@ -70,6 +71,7 @@ void arg_interpet(char *argv[], Pargs *pargs){ printf("-b [size] sets the box size\n"); printf("-o [file.png] exports the image\n"); printf("-B [brightness float] sets brightness\n"); + printf("-C enables colorvars for ascii output. enable -p and perferable use -c color\n intended to be used for fastfetch\n"); printf("defaults \n none \n N@EW$9876543210?!abc;:+=-,._ \n width 900 \n height 900 \n char size 10 \n box size 10"); exit(0); } @@ -83,6 +85,10 @@ void arg_interpet(char *argv[], Pargs *pargs){ pargs->print=true; } + if (strcmp(argv[i],"-C")==0){ + pargs->printMultiColorVars=true; + } + if (strcmp(argv[i],"-c")==0){ if(argv[i+2]){}else{ printf("you must specify a color with -C\n\n"); @@ -177,6 +183,78 @@ void arg_interpet(char *argv[], Pargs *pargs){ } +SDL_Color hexToColor(char *str){ + int r, g, b; + sscanf(str, "%02x%02x%02x", &r, &g, &b); + return (SDL_Color){r,g,b}; +} + +float magnitude(float x, float y, float z) { + return sqrt((pow(x,2) + pow(y,2) + pow(z,2))); +} + +int getMultiColor(SDL_Color *color){ + int colorCount=8; + char **color_hexs=(char**)malloc(sizeof(char*)*colorCount); + //for (int i=0; i<16; i++){ + // color_hexs[i]=(char*)malloc(sizeof(char)*8); + //} + color_hexs[0]="000000"; + color_hexs[1]="AA0000"; + color_hexs[2]="00AA00"; + color_hexs[3]="AA5500"; + color_hexs[4]="0000AA"; + color_hexs[5]="AA00AA"; + color_hexs[6]="00AAAA"; + color_hexs[7]="AAAAAA"; + //color_hexs[8]="555555"; + //color_hexs[9]="FF5555"; + //color_hexs[10]="55FF55"; + //color_hexs[11]="FFFF55"; + //color_hexs[12]="5555FF"; + //color_hexs[13]="FF55FF"; + //color_hexs[14]="55FFFF"; + //color_hexs[15]="FFFFFF"; + + //#000000 + //#AA0000 + //#00AA00 + //#AA5500 + //#0000AA + //#AA00AA + //#00AAAA + //#AAAAAA + //#555555 + //#FF5555 + //#55FF55 + //#FFFF55 + //#5555FF + //#FF55FF + //#55FFFF + //#FFFFFF + + float colors[colorCount]; + for (int i=0; i<colorCount; i++){ + SDL_Color sel_col = hexToColor(color_hexs[i]); + colors[i] = magnitude((float)color->r-sel_col.r, (float)color->g-sel_col.g, (float)color->b-sel_col.b); + } + + int sel=0; + float last_dist=99999; + for (int i=0; i<colorCount; i++){ + if(colors[i] < last_dist){ + sel=i; + last_dist=colors[i]; + } + } + + //for (int i=0; i<16; i++){ + // free(color_hexs[i]); + //} + free(color_hexs); + return sel+1; +} + void draw(SDL_Renderer* renderer,SDL_Window* window, uint32_t pix_format,TTF_Font *font,Pargs *parsed_args){ SDL_Rect textRect; @@ -201,7 +279,7 @@ void draw(SDL_Renderer* renderer,SDL_Window* window, uint32_t pix_format,TTF_Fon int pitch = SDL_CalculatePitch(pix_format, parsed_args->width); //int a=SDL_RenderReadPixels(renderer, NULL, pix_format, Rpixels, parsed_args->width * sizeof(Uint32)); - int a=SDL_RenderReadPixels(renderer, NULL, pix_format, Rpixels, pitch); + SDL_RenderReadPixels(renderer, NULL, pix_format, Rpixels, pitch); SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); @@ -235,7 +313,6 @@ void draw(SDL_Renderer* renderer,SDL_Window* window, uint32_t pix_format,TTF_Fon int avg = (r2 + g2 + b2) / 3; - int avg_conv=avg; float inver=255-(avg)-1; if (inver>254){ inver=254; } @@ -261,9 +338,16 @@ void draw(SDL_Renderer* renderer,SDL_Window* window, uint32_t pix_format,TTF_Fon break; } + sel_char[0]=parsed_args->density[charIndex]; sel_char[1]='\0'; - if(parsed_args->print==true){printf("%s",sel_char);} + if(parsed_args->print==true){ + if(parsed_args->printMultiColorVars && sel_char[0] != ' '){ + int charcol=getMultiColor(&color); + printf("$%d",charcol); + } + printf("%s",sel_char); + } textllure2=createText(sel_char, renderer, &textRect2, font, color); SDL_RenderCopy(renderer,textllure2,NULL, &textRect2); @@ -286,7 +370,6 @@ void draw(SDL_Renderer* renderer,SDL_Window* window, uint32_t pix_format,TTF_Fon //SDL_RenderReadPixels(renderer, NULL, SDL_GetWindowPixelFormat(window), pScreenShot->pixels, pScreenShot->pitch); SDL_RenderReadPixels(renderer, NULL, SDL_GetWindowPixelFormat(window), pScreenShot->pixels, pScreenShot->pitch); - char num[100]; char* name=parsed_args->export_name; // Create the bmp screenshot file @@ -337,23 +420,11 @@ int main(int argc, char *argv[]) bool quit = false; SDL_Event e; - bool mousedown=false; - int gmouseX=0; - int gmouseY=0; while (!quit) { while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { quit = true; } - else if(e.type == SDL_MOUSEBUTTONDOWN){ - } else if(e.type==SDL_MOUSEBUTTONUP){ - } - gmouseX=e.button.x; - gmouseY=e.button.y; - } - float mouseoutX=gmouseX; - float mouseoutY=gmouseY; - if(mousedown==true){ } SDL_Delay(10); } |
