1#ifndef FILETYPE_TYPES_IMAGE_HPP
2#define FILETYPE_TYPES_IMAGE_HPP
6#include "filetype/type.hpp"
11using Type = ::filetype::Type;
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"};
28inline const std::array<uint8_t, 3>
JPEG_MAGIC = {0xFF, 0xD8, 0xFF};
29inline const Type TYPE_JPEG{
"image/jpeg",
"jpg"};
36 0x47, 0x49, 0x46, 0x38, 0x39, 0x61};
37inline const Type TYPE_GIF{
"image/gif",
"gif"};
44 0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x45, 0x42, 0x50};
45inline const Type TYPE_WEBP{
"image/webp",
"webp"};
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"};
58inline const std::array<uint8_t, 4>
TIFF_MAGIC_LE = {0x49, 0x49, 0x2A, 0x00};
64inline const std::array<uint8_t, 4>
TIFF_MAGIC_BE = {0x4D, 0x4D, 0x00, 0x2A};
65inline const Type TYPE_TIFF{
"image/tiff",
"tif"};
71inline const std::array<uint8_t, 2>
BMP_MAGIC = {0x42, 0x4D};
72inline const Type TYPE_BMP{
"image/bmp",
"bmp"};
78inline const std::array<uint8_t, 3>
JXR_MAGIC = {0x49, 0x49, 0xBC};
79inline const Type TYPE_JXR{
"image/vnd.ms-photo",
"jxr"};
85inline const std::array<uint8_t, 4>
PSD_MAGIC = {0x38, 0x42, 0x50, 0x53};
86inline const Type TYPE_PSD{
"image/vnd.adobe.photoshop",
"psd"};
92inline const std::array<uint8_t, 4>
ICO_MAGIC = {0x00, 0x00, 0x01, 0x00};
93inline const Type TYPE_ICO{
"image/x-icon",
"ico"};
100 0x00, 0x00, 0x00, 0x18, 0x66, 0x74, 0x79, 0x70, 0x68, 0x65, 0x69, 0x63};
101inline const Type TYPE_HEIC{
"image/heic",
"heic"};
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