cpp-filetype
 
Loading...
Searching...
No Matches
image.hpp
1#ifndef FILETYPE_TYPES_IMAGE_HPP
2#define FILETYPE_TYPES_IMAGE_HPP
3
4#include <array>
5#include <cstdint>
6#include "filetype/type.hpp"
7
8namespace filetype {
9namespace image {
10
11using Type = ::filetype::Type;
12
13//------------------------------------------------------------------------------
14// Image file type definitions
15//------------------------------------------------------------------------------
16
21inline const std::array<uint8_t, 8> PNG_MAGIC = {0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A};
22inline const Type TYPE_PNG{"image/png", "png"};
23
28inline const std::array<uint8_t, 3> JPEG_MAGIC = {0xFF, 0xD8, 0xFF};
29inline const Type TYPE_JPEG{"image/jpeg", "jpg"};
30
35inline const std::array<uint8_t, 6> GIF_MAGIC = {
36 0x47, 0x49, 0x46, 0x38, 0x39, 0x61}; // Represents "GIF89a"
37inline const Type TYPE_GIF{"image/gif", "gif"};
38
43inline const std::array<uint8_t, 12> WEBP_MAGIC = {
44 0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x45, 0x42, 0x50};
45inline const Type TYPE_WEBP{"image/webp", "webp"};
46
51inline const std::array<uint8_t, 8> CR2_MAGIC = {0x49, 0x49, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00};
52inline const Type TYPE_CR2{"image/x-canon-cr2", "cr2"};
53
58inline const std::array<uint8_t, 4> TIFF_MAGIC_LE = {0x49, 0x49, 0x2A, 0x00};
59
64inline const std::array<uint8_t, 4> TIFF_MAGIC_BE = {0x4D, 0x4D, 0x00, 0x2A};
65inline const Type TYPE_TIFF{"image/tiff", "tif"};
66
71inline const std::array<uint8_t, 2> BMP_MAGIC = {0x42, 0x4D};
72inline const Type TYPE_BMP{"image/bmp", "bmp"};
73
78inline const std::array<uint8_t, 3> JXR_MAGIC = {0x49, 0x49, 0xBC};
79inline const Type TYPE_JXR{"image/vnd.ms-photo", "jxr"};
80
85inline const std::array<uint8_t, 4> PSD_MAGIC = {0x38, 0x42, 0x50, 0x53};
86inline const Type TYPE_PSD{"image/vnd.adobe.photoshop", "psd"};
87
92inline const std::array<uint8_t, 4> ICO_MAGIC = {0x00, 0x00, 0x01, 0x00};
93inline const Type TYPE_ICO{"image/x-icon", "ico"};
94
99inline const std::array<uint8_t, 12> HEIC_MAGIC = {
100 0x00, 0x00, 0x00, 0x18, 0x66, 0x74, 0x79, 0x70, 0x68, 0x65, 0x69, 0x63};
101inline const Type TYPE_HEIC{"image/heic", "heic"};
102
103} // namespace image
104} // namespace filetype
105
106#endif // FILETYPE_TYPES_IMAGE_HPP
Common Type struct used across all file formats.
Definition type.hpp:9
const std::array< uint8_t, 8 > CR2_MAGIC
Canon Raw v2 image format Magic: 49 49 2A 00 10 00 00 00.
Definition image.hpp:51
const std::array< uint8_t, 4 > TIFF_MAGIC_LE
TIFF image format (little-endian) Magic: 49 49 2A 00 (II*)
Definition image.hpp:58
const std::array< uint8_t, 6 > GIF_MAGIC
GIF image format Magic: 47 49 46 38 (GIF8)
Definition image.hpp:35
const std::array< uint8_t, 3 > JPEG_MAGIC
JPEG image format Magic: FF D8 FF.
Definition image.hpp:28
const std::array< uint8_t, 12 > HEIC_MAGIC
HEIC image format (High Efficiency Image Format) Magic: 00 00 00 ?? 66 74 79 70 68 65 69 63 (....
Definition image.hpp:99
const std::array< uint8_t, 2 > BMP_MAGIC
BMP image format Magic: 42 4D (BM)
Definition image.hpp:71
const std::array< uint8_t, 3 > JXR_MAGIC
JPEG XR image format Magic: 49 49 BC.
Definition image.hpp:78
const std::array< uint8_t, 8 > PNG_MAGIC
PNG image format Magic: 89 50 4E 47 0D 0A 1A 0A.
Definition image.hpp:21
const std::array< uint8_t, 4 > TIFF_MAGIC_BE
TIFF image format (big-endian) Magic: 4D 4D 00 2A (MM*. )
Definition image.hpp:64
const std::array< uint8_t, 4 > PSD_MAGIC
Photoshop Document format Magic: 38 42 50 53 (8BPS)
Definition image.hpp:85
const std::array< uint8_t, 4 > ICO_MAGIC
ICO image format Magic: 00 00 01 00.
Definition image.hpp:92
const std::array< uint8_t, 12 > WEBP_MAGIC
WebP image format Magic: 52 49 46 46 ?? ?? ?? ?? 57 45 42 50 (RIFF....WEBP)
Definition image.hpp:43