aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/docx/image/constants.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/docx/image/constants.py')
-rw-r--r--.venv/lib/python3.12/site-packages/docx/image/constants.py172
1 files changed, 172 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/docx/image/constants.py b/.venv/lib/python3.12/site-packages/docx/image/constants.py
new file mode 100644
index 00000000..729a828b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/docx/image/constants.py
@@ -0,0 +1,172 @@
+"""Constants specific the the image sub-package."""
+
+
+class JPEG_MARKER_CODE:
+ """JPEG marker codes."""
+
+ TEM = b"\x01"
+ DHT = b"\xC4"
+ DAC = b"\xCC"
+ JPG = b"\xC8"
+
+ SOF0 = b"\xC0"
+ SOF1 = b"\xC1"
+ SOF2 = b"\xC2"
+ SOF3 = b"\xC3"
+ SOF5 = b"\xC5"
+ SOF6 = b"\xC6"
+ SOF7 = b"\xC7"
+ SOF9 = b"\xC9"
+ SOFA = b"\xCA"
+ SOFB = b"\xCB"
+ SOFD = b"\xCD"
+ SOFE = b"\xCE"
+ SOFF = b"\xCF"
+
+ RST0 = b"\xD0"
+ RST1 = b"\xD1"
+ RST2 = b"\xD2"
+ RST3 = b"\xD3"
+ RST4 = b"\xD4"
+ RST5 = b"\xD5"
+ RST6 = b"\xD6"
+ RST7 = b"\xD7"
+
+ SOI = b"\xD8"
+ EOI = b"\xD9"
+ SOS = b"\xDA"
+ DQT = b"\xDB" # Define Quantization Table(s)
+ DNL = b"\xDC"
+ DRI = b"\xDD"
+ DHP = b"\xDE"
+ EXP = b"\xDF"
+
+ APP0 = b"\xE0"
+ APP1 = b"\xE1"
+ APP2 = b"\xE2"
+ APP3 = b"\xE3"
+ APP4 = b"\xE4"
+ APP5 = b"\xE5"
+ APP6 = b"\xE6"
+ APP7 = b"\xE7"
+ APP8 = b"\xE8"
+ APP9 = b"\xE9"
+ APPA = b"\xEA"
+ APPB = b"\xEB"
+ APPC = b"\xEC"
+ APPD = b"\xED"
+ APPE = b"\xEE"
+ APPF = b"\xEF"
+
+ STANDALONE_MARKERS = (TEM, SOI, EOI, RST0, RST1, RST2, RST3, RST4, RST5, RST6, RST7)
+
+ SOF_MARKER_CODES = (
+ SOF0,
+ SOF1,
+ SOF2,
+ SOF3,
+ SOF5,
+ SOF6,
+ SOF7,
+ SOF9,
+ SOFA,
+ SOFB,
+ SOFD,
+ SOFE,
+ SOFF,
+ )
+
+ marker_names = {
+ b"\x00": "UNKNOWN",
+ b"\xC0": "SOF0",
+ b"\xC2": "SOF2",
+ b"\xC4": "DHT",
+ b"\xDA": "SOS", # start of scan
+ b"\xD8": "SOI", # start of image
+ b"\xD9": "EOI", # end of image
+ b"\xDB": "DQT",
+ b"\xE0": "APP0",
+ b"\xE1": "APP1",
+ b"\xE2": "APP2",
+ b"\xED": "APP13",
+ b"\xEE": "APP14",
+ }
+
+ @classmethod
+ def is_standalone(cls, marker_code):
+ return marker_code in cls.STANDALONE_MARKERS
+
+
+class MIME_TYPE:
+ """Image content types."""
+
+ BMP = "image/bmp"
+ GIF = "image/gif"
+ JPEG = "image/jpeg"
+ PNG = "image/png"
+ TIFF = "image/tiff"
+
+
+class PNG_CHUNK_TYPE:
+ """PNG chunk type names."""
+
+ IHDR = "IHDR"
+ pHYs = "pHYs"
+ IEND = "IEND"
+
+
+class TIFF_FLD_TYPE:
+ """Tag codes for TIFF Image File Directory (IFD) entries."""
+
+ BYTE = 1
+ ASCII = 2
+ SHORT = 3
+ LONG = 4
+ RATIONAL = 5
+
+ field_type_names = {
+ 1: "BYTE",
+ 2: "ASCII char",
+ 3: "SHORT",
+ 4: "LONG",
+ 5: "RATIONAL",
+ }
+
+
+TIFF_FLD = TIFF_FLD_TYPE
+
+
+class TIFF_TAG:
+ """Tag codes for TIFF Image File Directory (IFD) entries."""
+
+ IMAGE_WIDTH = 0x0100
+ IMAGE_LENGTH = 0x0101
+ X_RESOLUTION = 0x011A
+ Y_RESOLUTION = 0x011B
+ RESOLUTION_UNIT = 0x0128
+
+ tag_names = {
+ 0x00FE: "NewSubfileType",
+ 0x0100: "ImageWidth",
+ 0x0101: "ImageLength",
+ 0x0102: "BitsPerSample",
+ 0x0103: "Compression",
+ 0x0106: "PhotometricInterpretation",
+ 0x010E: "ImageDescription",
+ 0x010F: "Make",
+ 0x0110: "Model",
+ 0x0111: "StripOffsets",
+ 0x0112: "Orientation",
+ 0x0115: "SamplesPerPixel",
+ 0x0117: "StripByteCounts",
+ 0x011A: "XResolution",
+ 0x011B: "YResolution",
+ 0x011C: "PlanarConfiguration",
+ 0x0128: "ResolutionUnit",
+ 0x0131: "Software",
+ 0x0132: "DateTime",
+ 0x0213: "YCbCrPositioning",
+ 0x8769: "ExifTag",
+ 0x8825: "GPS IFD",
+ 0xC4A5: "PrintImageMatching",
+ }