U
    Ú²g†0  ã                J   @  s†	  d Z ddlmZ ddddddd	d
dddddddddddddddddddddddddddddddddd	dddddddd
dddddddddddddddg@ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg@gdœddddddddddddddddddddddd d!d"ddddd d#d"d$dddd dd%d$d$ddd d#d%d$d$d$ddd!d"d$d$d$d$ddd"d$d$d$d$d$g@d&dd&ddd dd'dd(dd&dd d!dd&ddd)d dd	ddd&d)ddddd$ddd ddd'd$d$d d ddd'd*d$d$dd!d	dd$d$d$d$d'ddd$d$d$d$d$g@gdœdd+d,d,d+d-dddd,d.d.d+d/d0ddd,d.d.d+d0dd1d(d+d+d+dddd(dd-d/d0ddddddd0ddddddddd1d(ddddddd(dddddg@d2d2ddd dddd2dddddddddd&dddddddddddddd dddddddddddddddddddddddddddddddg@gdœdddddd3d,d.d+ddddd3d,d.d+ddddd,d.d2d-dddd,d.d2d-dd3d3d,d.d/d0ddd,d,d.d2d0dddd.d.d2d-ddddd+d+d-dddddg@d3d3d.d-ddddd3d,d+dd1dddd.d+d-d1ddddd-dd1ddddddd1ddddddddddddddddddddddddddddddg@gdœdd4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4dd4d4d4d4d4d4ddd4d4d4d4d4ddd3d4d4d4d4ddd3d3d4d4d4ddd3d3d3d4d4ddd3d3d3d3g@d4d4d4ddd3d3d3d4d4d4dd3d3d3d3d4d4d4d3d3d3d3d3ddd3d3d3d3d3d3dd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3g@gdœddd1d1ddd!d5d&d1ddd(d dddd1dd&ddddddd(dddddddd ddddddd!dddddddd5dddddddd&dddddddg@dd(d)dddd&d&d(ddd1d1dddd)dd1d1dddddd1d1ddddddd1ddddddddddddddd&dddddddd&dddddddg@gdœddd/d/dd&ddd&d/d-d-ddd(ddd/d-d0dd(dddddddddddd&dd(ddddddd(ddddddddddddddd&dddddddg@ddddddd&d&dd1d1d1d1ddddd1d1d1dddddd1d1ddddddd1ddddddddddddddd&dddddddd&dddddddg@gdœdd+d,d,d+d-dddd,d.d.d+d/d0ddd,d.d.d+d0dddd+d+d+dddddd-d/d0ddddddd0ddddddddddddddddddddddg@d2d2ddddd&d&d2ddd1d1dddddd1d1dddddd1d1ddddddd1ddddddddddddddd&dddddddd&dddddddg@gdœdddddd3d,d.d+ddddd3d,d.d+ddddd,d.d2d-dddd,d.d2d-dd3d3d,d.d/d0ddd,d,d.d2d0dddd.d.d2d-ddddd+d+d-dddddg@d3d3d.d-ddddd3d,d+d0d1dddd.d+d-d1ddddd-d0d1ddddddd1ddddddddddddddddddddddddddddddg@gdœd6œ	Zd7S )8uG  
JPEG quality settings equivalent to the Photoshop settings.
Can be used when saving JPEG files.

The following presets are available by default:
``web_low``, ``web_medium``, ``web_high``, ``web_very_high``, ``web_maximum``,
``low``, ``medium``, ``high``, ``maximum``.
More presets can be added to the :py:data:`presets` dict if needed.

To apply the preset, specify::

  quality="preset_name"

To apply only the quantization table::

  qtables="preset_name"

To apply only the subsampling setting::

  subsampling="preset_name"

Example::

  im.save("image_name.jpg", quality="web_high")

Subsampling
-----------

Subsampling is the practice of encoding images by implementing less resolution
for chroma information than for luma information.
(ref.: https://en.wikipedia.org/wiki/Chroma_subsampling)

Possible subsampling values are 0, 1 and 2 that correspond to 4:4:4, 4:2:2 and
4:2:0.

You can get the subsampling of a JPEG with the
:func:`.JpegImagePlugin.get_sampling` function.

In JPEG compressed data a JPEG marker is used instead of an EXIFÂ tag.
(ref.: https://web.archive.org/web/20240227115053/https://exiv2.org/tags.html)


Quantization tables
-------------------

They are values use by the DCT (Discrete cosine transform) to remove
*unnecessary* information from the image (the lossy part of the compression).
(ref.: https://en.wikipedia.org/wiki/Quantization_matrix#Quantization_matrices,
https://en.wikipedia.org/wiki/JPEG#Quantization)

You can get the quantization tables of a JPEG with::

  im.quantization

This will return a dict with a number of lists. You can pass this dict
directly as the qtables argument when saving a JPEG.

The quantization table format in presets is a list with sublists. These formats
are interchangeable.

Libjpeg ref.:
https://web.archive.org/web/20120328125543/http://www.jpegcameras.com/libjpeg/libjpeg-3.html

é    )Úannotationsé   é   é   é   é'   é2   é.   é>   éD   é   é   é&   é5   éA   é   é   é    é6   é   é   é+   éB   )ZsubsamplingZquantizationé   é   é   é   é   é   é   é#   é/   é%   é@   é3   é   é0   é   é   é?   é   é   é	   é   é   é
   é   é   é   é   é"   )	Zweb_lowZ
web_mediumZweb_highZweb_very_highZweb_maximumÚlowZmediumÚhighÚmaximumN)Ú__doc__Ú
__future__r   Zpresets© r:   r:   ú3/tmp/pip-unpacked-wheel-xela2va7/PIL/JpegPresets.pyÚ<module>   sd  A                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ                                                 ù                                                 ù÷ÿ€ ç