|
| 1 | +#![allow(dead_code)] |
| 2 | + |
1 | 3 | use std::error::Error; |
2 | 4 | use std::fmt; |
3 | 5 | use std::fs::File; |
@@ -52,48 +54,69 @@ pub type ImageResult<T> = Result<T, ImageError>; |
52 | 54 | pub enum ImageType { |
53 | 55 | /// Animated sprite image format |
54 | 56 | /// <https://github.com/aseprite/aseprite> |
| 57 | + #[cfg(feature = "aesprite")] |
55 | 58 | Aseprite, |
56 | 59 | /// Standard Bitmap |
| 60 | + #[cfg(feature = "bmp")] |
57 | 61 | Bmp, |
58 | 62 | /// DirectDraw Surface |
| 63 | + #[cfg(feature = "dds")] |
59 | 64 | Dds, |
60 | 65 | /// OpenEXR |
| 66 | + #[cfg(feature = "exr")] |
61 | 67 | Exr, |
62 | 68 | /// Farbfeld |
63 | 69 | /// <https://tools.suckless.org/farbfeld/> |
| 70 | + #[cfg(feature = "farbfeld")] |
64 | 71 | Farbfeld, |
65 | 72 | /// Standard GIF |
| 73 | + #[cfg(feature = "gif")] |
66 | 74 | Gif, |
67 | 75 | /// Radiance HDR |
| 76 | + #[cfg(feature = "hdr")] |
68 | 77 | Hdr, |
69 | 78 | /// Image Container Format |
| 79 | + #[cfg(feature = "heif")] |
70 | 80 | Heif(Compression), |
71 | 81 | /// Icon file |
| 82 | + #[cfg(feature = "ico")] |
72 | 83 | Ico, |
73 | 84 | /// Interleaved Bitmap |
| 85 | + #[cfg(feature = "ilbm")] |
74 | 86 | Ilbm, |
75 | 87 | /// Standard JPEG |
| 88 | + #[cfg(feature = "jpeg")] |
76 | 89 | Jpeg, |
77 | 90 | /// JPEG XL |
| 91 | + #[cfg(feature = "jxl")] |
78 | 92 | Jxl, |
79 | 93 | /// Khronos Texture Container |
| 94 | + #[cfg(feature = "ktx2")] |
80 | 95 | Ktx2, |
81 | 96 | /// Standard PNG |
| 97 | + #[cfg(feature = "png")] |
82 | 98 | Png, |
83 | 99 | /// Portable Any Map |
| 100 | + #[cfg(feature = "pnm")] |
84 | 101 | Pnm, |
85 | 102 | /// Photoshop Document |
| 103 | + #[cfg(feature = "psd")] |
86 | 104 | Psd, |
87 | 105 | /// Quite OK Image Format |
88 | 106 | /// <https://qoiformat.org/> |
| 107 | + #[cfg(feature = "qoi")] |
89 | 108 | Qoi, |
90 | 109 | /// Truevision Graphics Adapter |
| 110 | + #[cfg(feature = "tga")] |
91 | 111 | Tga, |
92 | 112 | /// Standard TIFF |
| 113 | + #[cfg(feature = "tiff")] |
93 | 114 | Tiff, |
94 | 115 | /// Valve Texture Format |
| 116 | + #[cfg(feature = "vtf")] |
95 | 117 | Vtf, |
96 | 118 | /// Standard Webp |
| 119 | + #[cfg(feature = "webp")] |
97 | 120 | Webp, |
98 | 121 | } |
99 | 122 |
|
@@ -253,27 +276,48 @@ pub fn reader_size<R: BufRead + Seek>(mut reader: R) -> ImageResult<ImageSize> { |
253 | 276 | /// * `header` - The header of the file |
254 | 277 | fn dispatch_header<R: BufRead + Seek>(reader: &mut R) -> ImageResult<ImageSize> { |
255 | 278 | match formats::image_type(reader)? { |
| 279 | + #[cfg(feature = "aesprite")] |
256 | 280 | ImageType::Aseprite => aesprite::size(reader), |
| 281 | + #[cfg(feature = "bmp")] |
257 | 282 | ImageType::Bmp => bmp::size(reader), |
| 283 | + #[cfg(feature = "dds")] |
258 | 284 | ImageType::Dds => dds::size(reader), |
| 285 | + #[cfg(feature = "exr")] |
259 | 286 | ImageType::Exr => exr::size(reader), |
| 287 | + #[cfg(feature = "farbfeld")] |
260 | 288 | ImageType::Farbfeld => farbfeld::size(reader), |
| 289 | + #[cfg(feature = "gif")] |
261 | 290 | ImageType::Gif => gif::size(reader), |
| 291 | + #[cfg(feature = "hdr")] |
262 | 292 | ImageType::Hdr => hdr::size(reader), |
| 293 | + #[cfg(feature = "ico")] |
263 | 294 | ImageType::Ico => ico::size(reader), |
| 295 | + #[cfg(feature = "ilbm")] |
264 | 296 | ImageType::Ilbm => ilbm::size(reader), |
| 297 | + #[cfg(feature = "jpeg")] |
265 | 298 | ImageType::Jpeg => jpeg::size(reader), |
| 299 | + #[cfg(feature = "jxl")] |
266 | 300 | ImageType::Jxl => jxl::size(reader), |
| 301 | + #[cfg(feature = "ktx2")] |
267 | 302 | ImageType::Ktx2 => ktx2::size(reader), |
| 303 | + #[cfg(feature = "png")] |
268 | 304 | ImageType::Png => png::size(reader), |
| 305 | + #[cfg(feature = "pnm")] |
269 | 306 | ImageType::Pnm => pnm::size(reader), |
| 307 | + #[cfg(feature = "psd")] |
270 | 308 | ImageType::Psd => psd::size(reader), |
| 309 | + #[cfg(feature = "qoi")] |
271 | 310 | ImageType::Qoi => qoi::size(reader), |
| 311 | + #[cfg(feature = "tga")] |
272 | 312 | ImageType::Tga => tga::size(reader), |
| 313 | + #[cfg(feature = "tiff")] |
273 | 314 | ImageType::Tiff => tiff::size(reader), |
| 315 | + #[cfg(feature = "vtf")] |
274 | 316 | ImageType::Vtf => vtf::size(reader), |
| 317 | + #[cfg(feature = "webp")] |
275 | 318 | ImageType::Webp => webp::size(reader), |
276 | 319 |
|
| 320 | + #[cfg(feature = "heif")] |
277 | 321 | ImageType::Heif(..) => heif::size(reader), |
278 | 322 | } |
279 | 323 | } |
0 commit comments