summaryrefslogtreecommitdiff
path: root/dmagick/c/quantize.d
blob: c090cd5d30ccb62048059d52a23cc631d1a56405 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
module dmagick.c.quantize;

import dmagick.c.colorspace;
import dmagick.c.image;
import dmagick.c.magickType;

extern(C)
{
	enum DitherMethod
	{
		UndefinedDitherMethod,
		NoDitherMethod,
		RiemersmaDitherMethod,
		FloydSteinbergDitherMethod
	}

	struct QuantizeInfo
	{
		size_t
			number_colors;

		size_t
			tree_depth;

		MagickBooleanType
			dither;

		ColorspaceType
			colorspace;

		MagickBooleanType
			measure_error;

		size_t
			signature;

		DitherMethod
			dither_method;
	}

	MagickBooleanType CompressImageColormap(Image*);
	MagickBooleanType GetImageQuantizeError(Image*);
	MagickBooleanType PosterizeImage(Image*, const size_t, const MagickBooleanType);
	MagickBooleanType QuantizeImage(const(QuantizeInfo)*, Image*);
	MagickBooleanType QuantizeImages(const(QuantizeInfo)*, Image*);
	MagickBooleanType RemapImage(const(QuantizeInfo)*, Image*, const(Image)*);
	MagickBooleanType RemapImages(const(QuantizeInfo)*, Image*, const(Image)*);

	QuantizeInfo* AcquireQuantizeInfo(const(ImageInfo)*);
	QuantizeInfo* CloneQuantizeInfo(const(QuantizeInfo)*);
	QuantizeInfo* DestroyQuantizeInfo(QuantizeInfo*);

	void GetQuantizeInfo(QuantizeInfo*);
}