magick_rust/types/mod.rs
1/*
2 * Copyright 2024 5ohue
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17mod geometry_info;
18mod image;
19mod kernel;
20
21pub use self::geometry_info::GeometryInfo;
22pub use self::image::{Image, ImageMut, ImageRef, Images, ImagesMut};
23pub use self::kernel::{KernelBuilder, KernelInfo};
24/// Text alignment for drawing operations (Left, Center, Right).
25pub use crate::bindings::AlignType;
26/// How an image's alpha (transparency) channel is activated or modified.
27pub use crate::bindings::AlphaChannelOption;
28/// Algorithm used to automatically choose a thresholding value (Kapur, OTSU, Triangle).
29pub use crate::bindings::AutoThresholdMethod;
30/// Selects which image channels an operation applies to (Red, Green, Blue, Alpha, etc.).
31pub use crate::bindings::ChannelType;
32/// Coordinate system used to interpret a clip path's units.
33pub use crate::bindings::ClipPathUnits;
34/// The colorspace of an image (RGB, sRGB, CMYK, Gray, etc.).
35pub use crate::bindings::ColorspaceType;
36/// How a source image is combined with a destination image when compositing (Over, Multiply, etc.).
37pub use crate::bindings::CompositeOperator;
38/// Compression algorithm used when encoding an image (LZW, JPEG, Zip, etc.).
39pub use crate::bindings::CompressionType;
40/// Text decoration applied when drawing (Underline, Overline, LineThrough).
41pub use crate::bindings::DecorationType;
42/// Text reading direction for drawing (left-to-right or right-to-left).
43pub use crate::bindings::DirectionType;
44/// How a frame is disposed of before the next frame is displayed in an animation.
45pub use crate::bindings::DisposeType;
46/// Dithering algorithm used when reducing an image's color count (Riemersma, Floyd-Steinberg).
47pub use crate::bindings::DitherMethod;
48/// Byte order (endianness) used when reading or writing image data.
49pub use crate::bindings::EndianType;
50/// Rule determining which regions of a path are considered "inside" when filling (EvenOdd, NonZero).
51pub use crate::bindings::FillRule;
52/// Resampling filter used when resizing or distorting an image (Lanczos, Point, etc.).
53pub use crate::bindings::FilterType;
54/// Placement of content relative to a bounding region (NorthWest, Center, etc.).
55pub use crate::bindings::GravityType;
56/// The type of an image (Bilevel, Grayscale, Palette, TrueColor, etc.).
57pub use crate::bindings::ImageType;
58/// Interlacing scheme used when encoding an image (None, Line, Plane, JPEG, etc.).
59pub use crate::bindings::InterlaceType;
60/// The kind of built-in convolution/morphology kernel to construct (Gaussian, Laplacian, etc.).
61pub use crate::bindings::KernelInfoType;
62/// Layer operation applied to a multi-frame image (Merge, Flatten, Coalesce, etc.).
63pub use crate::bindings::LayerMethod;
64/// Shape drawn at the open ends of a stroked line (Butt, Round, Square).
65pub use crate::bindings::LineCap;
66/// Shape drawn where two stroked line segments meet (Miter, Round, Bevel).
67pub use crate::bindings::LineJoin;
68/// Arithmetic operator applied per pixel by the evaluate operations (Add, Multiply, etc.).
69pub use crate::bindings::MagickEvaluateOperator;
70/// Mathematical function applied per pixel (Polynomial, Sinusoid, Arcsin, etc.).
71pub use crate::bindings::MagickFunction;
72/// Metric used to compare two images (MSE, RMSE, PSNR, etc.).
73pub use crate::bindings::MetricType;
74/// Morphology operation applied with a kernel (Erode, Dilate, Open, Close, etc.).
75pub use crate::bindings::MorphologyMethod;
76/// The EXIF-style orientation of an image (TopLeft, BottomRight, etc.).
77pub use crate::bindings::OrientationType;
78/// How a flood-fill or paint operation matches neighboring pixels (Point, Replace, Floodfill, etc.).
79pub use crate::bindings::PaintMethod;
80/// Interpolation method used when sampling between pixels (Bilinear, Nearest, Catrom, etc.).
81pub use crate::bindings::PixelInterpolateMethod;
82/// Identifies a per-pixel mask channel (Read, Write, Composite).
83pub use crate::bindings::PixelMask;
84/// Color rendering intent for ICC profile conversion (Perceptual, Saturation, Relative, Absolute).
85pub use crate::bindings::RenderingIntent;
86/// Unit of measurement for an image's resolution (PixelsPerInch, PixelsPerCentimeter).
87pub use crate::bindings::ResolutionType;
88/// A resource whose usage ImageMagick can limit (Memory, Disk, Threads, etc.).
89pub use crate::bindings::ResourceType;
90/// Statistical operation applied over a pixel neighborhood (Median, Mean, Gradient, etc.).
91pub use crate::bindings::StatisticType;
92/// Font stretch (width) used when drawing text (Normal, Condensed, Expanded, etc.).
93pub use crate::bindings::StretchType;
94/// Font style used when drawing text (Normal, Italic, Oblique).
95pub use crate::bindings::StyleType;
96/// How pixels outside the image bounds are computed during sampling (Edge, Tile, Mirror, etc.).
97pub use crate::bindings::VirtualPixelMethod;