/* vim:expandtab:ts=2 sw=2: */ /* Grafx2 - The Ultimate 256-color bitmap paint program Copyright owned by various GrafX2 authors, see COPYRIGHT.txt for details. Grafx2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. Grafx2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Grafx2; if not, see */ ////////////////////////////////////////////////////////////////////////////// ///@file op_c.h /// Color reduction and color conversion (24b->8b, RGB<->HSL). /// This is called op_c because half of the process was originally /// coded in op_asm, in assembler. ////////////////////////////////////////////////////////////////////////////// #ifndef _OP_C_H_ #define _OP_C_H_ #include "struct.h" #include "colorred.h" //////////////////////////////////////////////// Définition des types de base typedef T_Components * T_Bitmap24B; typedef byte * T_Bitmap256; ///////////////////////////////////////// Définition d'une table d'occurences /** * Occurence table. * * This table is used to count the occurrence of an (RGB) pixel value in the * source 24bit image. These count are then used by the median cut algorithm to * decide which cluster to split. */ typedef struct { int nbb_r; // Nb de bits de précision sur les rouges int nbb_g; // Nb de bits de précision sur les verts int nbb_b; // Nb de bits de précision sur les bleu int rng_r; // Nb de valeurs sur les rouges (= 1<