Merge pull request #7963 from radarhere/example
|
@ -286,7 +286,7 @@ Previously, the ``size`` methods returned a ``height`` that included the vertica
|
||||||
offset of the text, while the new ``bbox`` methods distinguish this as a ``top``
|
offset of the text, while the new ``bbox`` methods distinguish this as a ``top``
|
||||||
offset.
|
offset.
|
||||||
|
|
||||||
.. image:: ./example/size_vs_bbox.png
|
.. image:: ./example/size_vs_bbox.webp
|
||||||
:alt: In bbox methods, top measures the vertical distance above the text, while bottom measures that plus the vertical distance of the text itself. In size methods, height also measures the vertical distance above the text plus the vertical distance of the text itself.
|
:alt: In bbox methods, top measures the vertical distance above the text, while bottom measures that plus the vertical distance of the text itself. In size methods, height also measures the vertical distance above the text plus the vertical distance of the text itself.
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 9.5 KiB |
|
@ -26,5 +26,5 @@ if __name__ == "__main__":
|
||||||
d.line(((x * 200, y * 100), (x * 200, (y + 1) * 100)), "black", 3)
|
d.line(((x * 200, y * 100), (x * 200, (y + 1) * 100)), "black", 3)
|
||||||
if y != 0:
|
if y != 0:
|
||||||
d.line(((x * 200, y * 100), ((x + 1) * 200, y * 100)), "black", 3)
|
d.line(((x * 200, y * 100), ((x + 1) * 200, y * 100)), "black", 3)
|
||||||
im.save("docs/example/anchors.png")
|
im.save("docs/example/anchors.webp")
|
||||||
im.show()
|
im.show()
|
||||||
|
|
BIN
docs/example/anchors.webp
Normal file
After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 19 KiB |
BIN
docs/example/image_thumbnail.webp
Normal file
After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 19 KiB |
BIN
docs/example/imageops_contain.webp
Normal file
After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 38 KiB |
BIN
docs/example/imageops_cover.webp
Normal file
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 28 KiB |
BIN
docs/example/imageops_fit.webp
Normal file
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 19 KiB |
BIN
docs/example/imageops_pad.webp
Normal file
After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 13 KiB |
BIN
docs/example/size_vs_bbox.webp
Normal file
After Width: | Height: | Size: 4.8 KiB |
|
@ -132,7 +132,7 @@ of the two lines.
|
||||||
|
|
||||||
.. comment: Image generated with ../example/anchors.py
|
.. comment: Image generated with ../example/anchors.py
|
||||||
|
|
||||||
.. image:: ../example/anchors.png
|
.. image:: ../example/anchors.webp
|
||||||
:alt: Text anchor examples
|
:alt: Text anchor examples
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|
|
@ -278,26 +278,26 @@ choose to resize relative to a given size.
|
||||||
|
|
||||||
from PIL import Image, ImageOps
|
from PIL import Image, ImageOps
|
||||||
size = (100, 150)
|
size = (100, 150)
|
||||||
with Image.open("Tests/images/hopper.png") as im:
|
with Image.open("Tests/images/hopper.webp") as im:
|
||||||
ImageOps.contain(im, size).save("imageops_contain.png")
|
ImageOps.contain(im, size).save("imageops_contain.webp")
|
||||||
ImageOps.cover(im, size).save("imageops_cover.png")
|
ImageOps.cover(im, size).save("imageops_cover.webp")
|
||||||
ImageOps.fit(im, size).save("imageops_fit.png")
|
ImageOps.fit(im, size).save("imageops_fit.webp")
|
||||||
ImageOps.pad(im, size, color="#f00").save("imageops_pad.png")
|
ImageOps.pad(im, size, color="#f00").save("imageops_pad.webp")
|
||||||
|
|
||||||
# thumbnail() can also be used,
|
# thumbnail() can also be used,
|
||||||
# but will modify the image object in place
|
# but will modify the image object in place
|
||||||
im.thumbnail(size)
|
im.thumbnail(size)
|
||||||
im.save("imageops_thumbnail.png")
|
im.save("image_thumbnail.webp")
|
||||||
|
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
| | :py:meth:`~PIL.Image.Image.thumbnail` | :py:meth:`~PIL.ImageOps.contain` | :py:meth:`~PIL.ImageOps.cover` | :py:meth:`~PIL.ImageOps.fit` | :py:meth:`~PIL.ImageOps.pad` |
|
| | :py:meth:`~PIL.Image.Image.thumbnail` | :py:meth:`~PIL.ImageOps.contain` | :py:meth:`~PIL.ImageOps.cover` | :py:meth:`~PIL.ImageOps.fit` | :py:meth:`~PIL.ImageOps.pad` |
|
||||||
+================+===========================================+============================================+==========================================+========================================+========================================+
|
+================+============================================+=============================================+===========================================+=========================================+=========================================+
|
||||||
|Given size | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` |
|
|Given size | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` |
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
|Resulting image | .. image:: ../example/image_thumbnail.png | .. image:: ../example/imageops_contain.png | .. image:: ../example/imageops_cover.png | .. image:: ../example/imageops_fit.png | .. image:: ../example/imageops_pad.png |
|
|Resulting image | .. image:: ../example/image_thumbnail.webp | .. image:: ../example/imageops_contain.webp | .. image:: ../example/imageops_cover.webp | .. image:: ../example/imageops_fit.webp | .. image:: ../example/imageops_pad.webp |
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
|Resulting size | ``100×100`` | ``100×100`` | ``150×150`` | ``100×150`` | ``100×150`` |
|
|Resulting size | ``100×100`` | ``100×100`` | ``150×150`` | ``100×150`` | ``100×150`` |
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
|
|
||||||
.. _color-transforms:
|
.. _color-transforms:
|
||||||
|
|
||||||
|
|
|
@ -36,26 +36,26 @@ Resize relative to a given size
|
||||||
|
|
||||||
from PIL import Image, ImageOps
|
from PIL import Image, ImageOps
|
||||||
size = (100, 150)
|
size = (100, 150)
|
||||||
with Image.open("Tests/images/hopper.png") as im:
|
with Image.open("Tests/images/hopper.webp") as im:
|
||||||
ImageOps.contain(im, size).save("imageops_contain.png")
|
ImageOps.contain(im, size).save("imageops_contain.webp")
|
||||||
ImageOps.cover(im, size).save("imageops_cover.png")
|
ImageOps.cover(im, size).save("imageops_cover.webp")
|
||||||
ImageOps.fit(im, size).save("imageops_fit.png")
|
ImageOps.fit(im, size).save("imageops_fit.webp")
|
||||||
ImageOps.pad(im, size, color="#f00").save("imageops_pad.png")
|
ImageOps.pad(im, size, color="#f00").save("imageops_pad.webp")
|
||||||
|
|
||||||
# thumbnail() can also be used,
|
# thumbnail() can also be used,
|
||||||
# but will modify the image object in place
|
# but will modify the image object in place
|
||||||
im.thumbnail(size)
|
im.thumbnail(size)
|
||||||
im.save("imageops_thumbnail.png")
|
im.save("image_thumbnail.webp")
|
||||||
|
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
| | :py:meth:`~PIL.Image.Image.thumbnail` | :py:meth:`~PIL.ImageOps.contain` | :py:meth:`~PIL.ImageOps.cover` | :py:meth:`~PIL.ImageOps.fit` | :py:meth:`~PIL.ImageOps.pad` |
|
| | :py:meth:`~PIL.Image.Image.thumbnail` | :py:meth:`~PIL.ImageOps.contain` | :py:meth:`~PIL.ImageOps.cover` | :py:meth:`~PIL.ImageOps.fit` | :py:meth:`~PIL.ImageOps.pad` |
|
||||||
+================+===========================================+============================================+==========================================+========================================+========================================+
|
+================+============================================+=============================================+===========================================+=========================================+=========================================+
|
||||||
|Given size | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` |
|
|Given size | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` | ``(100, 150)`` |
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
|Resulting image | .. image:: ../example/image_thumbnail.png | .. image:: ../example/imageops_contain.png | .. image:: ../example/imageops_cover.png | .. image:: ../example/imageops_fit.png | .. image:: ../example/imageops_pad.png |
|
|Resulting image | .. image:: ../example/image_thumbnail.webp | .. image:: ../example/imageops_contain.webp | .. image:: ../example/imageops_cover.webp | .. image:: ../example/imageops_fit.webp | .. image:: ../example/imageops_pad.webp |
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
|Resulting size | ``100×100`` | ``100×100`` | ``150×150`` | ``100×150`` | ``100×150`` |
|
|Resulting size | ``100×100`` | ``100×100`` | ``150×150`` | ``100×150`` | ``100×150`` |
|
||||||
+----------------+-------------------------------------------+--------------------------------------------+------------------------------------------+----------------------------------------+----------------------------------------+
|
+----------------+--------------------------------------------+---------------------------------------------+-------------------------------------------+-----------------------------------------+-----------------------------------------+
|
||||||
|
|
||||||
.. autofunction:: contain
|
.. autofunction:: contain
|
||||||
.. autofunction:: cover
|
.. autofunction:: cover
|
||||||
|
|
|
@ -98,7 +98,7 @@ Previously, the ``size`` methods returned a ``height`` that included the vertica
|
||||||
offset of the text, while the new ``bbox`` methods distinguish this as a ``top``
|
offset of the text, while the new ``bbox`` methods distinguish this as a ``top``
|
||||||
offset.
|
offset.
|
||||||
|
|
||||||
.. image:: ../example/size_vs_bbox.png
|
.. image:: ../example/size_vs_bbox.webp
|
||||||
:alt: In bbox methods, top measures the vertical distance above the text, while bottom measures that plus the vertical distance of the text itself. In size methods, height also measures the vertical distance above the text plus the vertical distance of the text itself.
|
:alt: In bbox methods, top measures the vertical distance above the text, while bottom measures that plus the vertical distance of the text itself. In size methods, height also measures the vertical distance above the text plus the vertical distance of the text itself.
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|