summaryrefslogtreecommitdiff
path: root/dmagick/c/quantum.d
diff options
context:
space:
mode:
Diffstat (limited to 'dmagick/c/quantum.d')
-rw-r--r--dmagick/c/quantum.d103
1 files changed, 103 insertions, 0 deletions
diff --git a/dmagick/c/quantum.d b/dmagick/c/quantum.d
new file mode 100644
index 0000000..5d534dd
--- /dev/null
+++ b/dmagick/c/quantum.d
@@ -0,0 +1,103 @@
+module dmagick.c.quantum;
+
+import dmagick.c.cacheView;
+import dmagick.c.exception;
+import dmagick.c.image;
+import dmagick.c.magickType;
+
+extern(C)
+{
+ enum EndianType
+ {
+ UndefinedEndian,
+ LSBEndian,
+ MSBEndian
+ }
+
+ enum QuantumAlphaType
+ {
+ UndefinedQuantumAlpha,
+ AssociatedQuantumAlpha,
+ DisassociatedQuantumAlpha
+ }
+
+ enum QuantumFormatType
+ {
+ UndefinedQuantumFormat,
+ FloatingPointQuantumFormat,
+ SignedQuantumFormat,
+ UnsignedQuantumFormat
+ }
+
+ enum QuantumType
+ {
+ UndefinedQuantum,
+ AlphaQuantum,
+ BlackQuantum,
+ BlueQuantum,
+ CMYKAQuantum,
+ CMYKQuantum,
+ CyanQuantum,
+ GrayAlphaQuantum,
+ GrayQuantum,
+ GreenQuantum,
+ IndexAlphaQuantum,
+ IndexQuantum,
+ MagentaQuantum,
+ OpacityQuantum,
+ RedQuantum,
+ RGBAQuantum,
+ BGRAQuantum,
+ RGBOQuantum,
+ RGBQuantum,
+ YellowQuantum,
+ GrayPadQuantum,
+ RGBPadQuantum,
+ CbYCrYQuantum,
+ CbYCrQuantum,
+ CbYCrAQuantum,
+ CMYKOQuantum,
+ BGRQuantum,
+ BGROQuantum
+ }
+
+ struct QuantumInfo {}
+
+ alias ClampToQuantum RoundToQuantum;
+ static pure nothrow Quantum ClampToQuantum(const MagickRealType value)
+ {
+ if (value <= 0.0)
+ return(cast(Quantum) 0);
+ if (value >= cast(MagickRealType) 65535UL)
+ return(cast(Quantum) 65535UL);
+ return(cast(Quantum) (value+0.5));
+ }
+
+ static pure nothrow ubyte ScaleQuantumToChar(const Quantum quantum)
+ {
+ return(cast(ubyte) (((quantum+128UL)-((quantum+128UL) >> 8)) >> 8));
+ }
+
+ MagickBooleanType SetQuantumDepth(const Image*, QuantumInfo*, const size_t);
+ MagickBooleanType SetQuantumFormat(const Image*, QuantumInfo*, const QuantumFormatType);
+ MagickBooleanType SetQuantumPad(const Image*, QuantumInfo*, const size_t);
+
+ QuantumInfo* AcquireQuantumInfo(const ImageInfo*, Image*);
+ QuantumInfo* DestroyQuantumInfo(QuantumInfo*);
+
+ QuantumType GetQuantumType(Image*, ExceptionInfo*);
+
+ size_t ExportQuantumPixels(const Image*, const CacheView*, const QuantumInfo*, const QuantumType, ubyte*, ExceptionInfo*);
+ size_t GetQuantumExtent(const Image*, const QuantumInfo*, const QuantumType);
+ size_t ImportQuantumPixels(Image*, CacheView*, const QuantumInfo*, const QuantumType, const ubyte*, ExceptionInfo*);
+
+ ubyte* GetQuantumPixels(const QuantumInfo*);
+
+ void GetQuantumInfo(const ImageInfo*, QuantumInfo*);
+ void SetQuantumAlphaType(QuantumInfo*, const QuantumAlphaType);
+ void SetQuantumImageType(Image*, const QuantumType);
+ void SetQuantumMinIsWhite(QuantumInfo*, const MagickBooleanType);
+ void SetQuantumPack(QuantumInfo*, const MagickBooleanType);
+ void SetQuantumQuantum(QuantumInfo*, const size_t);
+ void SetQuantumScale(QuantumInfo*, const double);
+}