diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:24:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:24:48 +0000 |
commit | cca66b9ec4e494c1d919bff0f71a820d8afab1fa (patch) | |
tree | 146f39ded1c938019e1ed42d30923c2ac9e86789 /src/3rdparty/autotrace/quantize.h | |
parent | Initial commit. (diff) | |
download | inkscape-upstream.tar.xz inkscape-upstream.zip |
Adding upstream version 1.2.2.upstream/1.2.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/3rdparty/autotrace/quantize.h')
-rw-r--r-- | src/3rdparty/autotrace/quantize.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/3rdparty/autotrace/quantize.h b/src/3rdparty/autotrace/quantize.h new file mode 100644 index 0000000..3e62c2e --- /dev/null +++ b/src/3rdparty/autotrace/quantize.h @@ -0,0 +1,52 @@ +/* quantize.h: Quantize a high color bitmap + + Copyright (C) 2001, 2002 Martin Weber + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 2.1 of + the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. */ + +#include "bitmap.h" +#include "color.h" +#include "exception.h" + +#ifndef QUANTIZE_H +#define QUANTIZE_H + +#define PRECISION_R 7 +#define PRECISION_G 7 +#define PRECISION_B 7 + +#define HIST_R_ELEMS (1<<PRECISION_R) +#define HIST_G_ELEMS (1<<PRECISION_G) +#define HIST_B_ELEMS (1<<PRECISION_B) + +#define MR HIST_G_ELEMS*HIST_B_ELEMS +#define MG HIST_B_ELEMS + +typedef unsigned long ColorFreq; +typedef ColorFreq *Histogram; + +typedef struct { + int desired_number_of_colors; /* Number of colors we will allow */ + int actual_number_of_colors; /* Number of colors actually needed */ + at_color cmap[256]; /* colormap created by quantization */ + ColorFreq freq[256]; + Histogram histogram; /* holds the histogram */ +} QuantizeObj; + +void quantize(at_bitmap *, long ncolors, const at_color * bgColor, QuantizeObj **, at_exception_type * exp); + +void quantize_object_free(QuantizeObj * obj); +#endif /* NOT QUANTIZE_H */ |