/* ------------------ */ /* --- ppalette.c --- */ /* ------------------ */ // Copyright (c) 2013-2014 Lionel Lacassagne, All Rights Reserved // Laboratoire de Recherche en Informatique // Universite Paris-Sud / CNRS // ajout des demi-palettes n-colors + gray // PackGrayLower PackGrayUpper #include #include #include #ifdef CLI #include "nrc_os_config.h" #include "nrc.h" #endif #include "palette.h" /* * Modif : 98-11-18 ajout de Save */ /* ---------------------------------------------- */ IMAGE_EXPORT(void) Palette_Display(RGBQuad *palette) /* ---------------------------------------------- */ { int i; printf("Palette"); for (i = 0; i < 256; i++) { printf("%4d:%4d%4d%4d\n", i,palette[i].red, palette[i].green, palette[i].blue); } } /* ----------------------------------------------------------- */ //IMAGE_EXPORT(void) Palette_Save(RGBQuad *palette, char *filename) /* ----------------------------------------------------------- */ /*{ int i, j; int k = 32; int hauteur = k, largeur = k*256; uint8 **X; Image *image; IConstructor(&image, hauteur, largeur, 0); X = (uint8**) Image_Get_Data(image); for(i=0; i> 1); } Lut_Apply(src, lut, dst); }*/ /* -------------------------------------------------------------------- */ //IMAGE_EXPORT(void) Palette_PackGrayUpper(Image *src, Lut *lut, Image *dst) /* -------------------------------------------------------------------- */ /*{ int k; uint8 *l = (uint8*) Lut_Get_Data(lut); for(k=0; k<256; k++) { l[k] = (uint8) 128 + (k >> 1); } Lut_Apply(src, lut, dst); }*/ /* ---------------------------------------------- */ IMAGE_EXPORT(void) Palette_2Colors(RGBQuad *palette) /* ---------------------------------------------- */ { int i, level; RGBQuad pattern[2]; pattern[0].red = 0; pattern[0].green = 0; pattern[0].blue = 0; level = 255; pattern[1].red = level; pattern[1].green = level; pattern[1].blue = level; for(i=0; i<256; i++) { palette[i].red = pattern[i%2].red; palette[i].green = pattern[i%2].green; palette[i].blue = pattern[i%2].blue; palette[i].reserved = (uint8) 0; } } /* ---------------------------------------------- */ IMAGE_EXPORT(void) Palette_4Colors(RGBQuad *palette) /* ---------------------------------------------- */ { int i, level; RGBQuad pattern[4]; for(i=0; i<2; i++) { level = (i<<8) - 1; pattern[i].red = level; pattern[0].green = level; pattern[0].blue = level; } for(i=0; i<256; i++) { palette[i].red = pattern[i%2].red; palette[i].green = pattern[i%2].green; palette[i].blue = pattern[i%2].blue; palette[i].reserved = (uint8) 0; } } /* ---------------------------------------------- */ IMAGE_EXPORT(void) Palette_16Colors(RGBQuad *palette) /* ---------------------------------------------- */ { int i, level; RGBQuad pattern[16]; for(i=0; i<4; i++) { level = (i<<8) - 1; pattern[i].red = level; pattern[0].green = level; pattern[0].blue = level; } for(i=0; i<256; i++) { palette[i].red = pattern[i%2].red; palette[i].green = pattern[i%2].green; palette[i].blue = pattern[i%2].blue; palette[i].reserved = (uint8) 0; } }