mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	Replace Python code-blocks with double colons
This commit is contained in:
		
							parent
							
								
									a55c2b42b9
								
							
						
					
					
						commit
						742aff3718
					
				| 
						 | 
				
			
			@ -1402,9 +1402,7 @@ at 72 dpi. To load it at another resolution::
 | 
			
		|||
 | 
			
		||||
To add other read or write support, use
 | 
			
		||||
:py:func:`PIL.WmfImagePlugin.register_handler` to register a WMF and EMF
 | 
			
		||||
handler.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
handler. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
    from PIL import WmfImagePlugin
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ For example, in the following image, the text is ``ms`` (middle-baseline) aligne
 | 
			
		|||
  :alt: ms (middle-baseline) aligned text.
 | 
			
		||||
  :align: left
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageDraw, ImageFont
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,9 +17,7 @@ Open, rotate, and display an image (using the default viewer)
 | 
			
		|||
 | 
			
		||||
The following script loads an image, rotates it 45 degrees, and displays it
 | 
			
		||||
using an external viewer (usually xv on Unix, and the Paint program on
 | 
			
		||||
Windows).
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
Windows). ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
    with Image.open("hopper.jpg") as im:
 | 
			
		||||
| 
						 | 
				
			
			@ -29,9 +27,7 @@ Create thumbnails
 | 
			
		|||
^^^^^^^^^^^^^^^^^
 | 
			
		||||
 | 
			
		||||
The following script creates nice thumbnails of all JPEG images in the
 | 
			
		||||
current directory preserving aspect ratios with 128x128 max resolution.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
current directory preserving aspect ratios with 128x128 max resolution. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
    import glob, os
 | 
			
		||||
| 
						 | 
				
			
			@ -242,9 +238,7 @@ This rotates the input image by ``theta`` degrees counter clockwise::
 | 
			
		|||
.. automethod:: PIL.Image.Image.transpose
 | 
			
		||||
 | 
			
		||||
This flips the input image by using the :data:`Transpose.FLIP_LEFT_RIGHT`
 | 
			
		||||
method.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
method. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,7 @@ For a more advanced drawing library for PIL, see the `aggdraw module`_.
 | 
			
		|||
Example: Draw a gray cross over an image
 | 
			
		||||
----------------------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    import sys
 | 
			
		||||
    from PIL import Image, ImageDraw
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +78,7 @@ libraries, and may not available in all PIL builds.
 | 
			
		|||
Example: Draw Partial Opacity Text
 | 
			
		||||
----------------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageDraw, ImageFont
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -105,7 +105,7 @@ Example: Draw Partial Opacity Text
 | 
			
		|||
Example: Draw Multiline Text
 | 
			
		||||
----------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageDraw, ImageFont
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -597,18 +597,14 @@ Methods
 | 
			
		|||
    string due to kerning. If you need to adjust for kerning, include the following
 | 
			
		||||
    character and subtract its length.
 | 
			
		||||
 | 
			
		||||
    For example, instead of
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    For example, instead of ::
 | 
			
		||||
 | 
			
		||||
        hello = draw.textlength("Hello", font)
 | 
			
		||||
        world = draw.textlength("World", font)
 | 
			
		||||
        hello_world = hello + world  # not adjusted for kerning
 | 
			
		||||
        assert hello_world == draw.textlength("HelloWorld", font)  # may fail
 | 
			
		||||
 | 
			
		||||
    use
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    use ::
 | 
			
		||||
 | 
			
		||||
        hello = draw.textlength("HelloW", font) - draw.textlength(
 | 
			
		||||
            "W", font
 | 
			
		||||
| 
						 | 
				
			
			@ -617,9 +613,7 @@ Methods
 | 
			
		|||
        hello_world = hello + world  # adjusted for kerning
 | 
			
		||||
        assert hello_world == draw.textlength("HelloWorld", font)  # True
 | 
			
		||||
 | 
			
		||||
    or disable kerning with (requires libraqm)
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    or disable kerning with (requires libraqm) ::
 | 
			
		||||
 | 
			
		||||
        hello = draw.textlength("Hello", font, features=["-kern"])
 | 
			
		||||
        world = draw.textlength("World", font, features=["-kern"])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ for image enhancement.
 | 
			
		|||
Example: Vary the sharpness of an image
 | 
			
		||||
---------------------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import ImageEnhance
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ and **xmllib** modules.
 | 
			
		|||
Example: Parse an image
 | 
			
		||||
-----------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import ImageFile
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@ filters, which can be be used with the :py:meth:`Image.filter()
 | 
			
		|||
Example: Filter an image
 | 
			
		||||
------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import ImageFilter
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ the imToolkit package.
 | 
			
		|||
Example
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import ImageFont, ImageDraw
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@ an expression string and one or more images.
 | 
			
		|||
Example: Using the :py:mod:`~PIL.ImageMath` module
 | 
			
		||||
--------------------------------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageMath
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ iterate over the frames of an image sequence.
 | 
			
		|||
Extracting frames from an animation
 | 
			
		||||
-----------------------------------
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageSequence
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,9 +18,7 @@ Example
 | 
			
		|||
-------
 | 
			
		||||
 | 
			
		||||
The following script loads an image, accesses one pixel from it, then
 | 
			
		||||
changes it.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
changes it. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -35,9 +33,7 @@ Results in the following::
 | 
			
		|||
    (23, 24, 68)
 | 
			
		||||
    (0, 0, 0)
 | 
			
		||||
 | 
			
		||||
Access using negative indexes is also possible.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
Access using negative indexes is also possible. ::
 | 
			
		||||
 | 
			
		||||
    px[-1, -1] = (0, 0, 0)
 | 
			
		||||
    print(px[-1, -1])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,9 +17,7 @@ The :py:mod:`~PIL.PyAccess` module provides a CFFI/Python implementation of the
 | 
			
		|||
Example
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
The following script loads an image, accesses one pixel from it, then changes it.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
The following script loads an image, accesses one pixel from it, then changes it. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -34,9 +32,7 @@ Results in the following::
 | 
			
		|||
    (23, 24, 68)
 | 
			
		||||
    (0, 0, 0)
 | 
			
		||||
 | 
			
		||||
Access using negative indexes is also possible.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
Access using negative indexes is also possible. ::
 | 
			
		||||
 | 
			
		||||
    px[-1, -1] = (0, 0, 0)
 | 
			
		||||
    print(px[-1, -1])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,9 +10,7 @@ Text stroking
 | 
			
		|||
``stroke_width`` and ``stroke_fill`` arguments have been added to text drawing
 | 
			
		||||
operations. They allow text to be outlined, setting the width of the stroke and
 | 
			
		||||
and the color respectively. If not provided, ``stroke_fill`` will default to
 | 
			
		||||
the ``fill`` parameter.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
the ``fill`` parameter. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageDraw, ImageFont
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -28,9 +26,7 @@ the ``fill`` parameter.
 | 
			
		|||
    draw.multiline_text((10, 10), "A\nB", "#f00", font,
 | 
			
		||||
                        stroke_width=2, stroke_fill="#0f0")
 | 
			
		||||
 | 
			
		||||
For example,
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
For example, ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageDraw, ImageFont
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,9 +10,7 @@ Allow saving of zero quality JPEG images
 | 
			
		|||
If no quality was specified when saving a JPEG, Pillow internally used a value
 | 
			
		||||
of zero to indicate that the default quality should be used. However, this
 | 
			
		||||
removed the ability to actually save a JPEG with zero quality. This has now
 | 
			
		||||
been resolved.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
been resolved. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image
 | 
			
		||||
    im = Image.open("hopper.jpg")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,9 +76,7 @@ ImageDraw.rounded_rectangle
 | 
			
		|||
Added :py:meth:`~PIL.ImageDraw.ImageDraw.rounded_rectangle`. It works the same as
 | 
			
		||||
:py:meth:`~PIL.ImageDraw.ImageDraw.rectangle`, except with an additional ``radius``
 | 
			
		||||
argument. ``radius`` is limited to half of the width or the height, so that users can
 | 
			
		||||
create a circle, but not any other ellipse.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
create a circle, but not any other ellipse. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import Image, ImageDraw
 | 
			
		||||
    im = Image.new("RGB", (200, 200))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,9 +24,7 @@ Added "transparency" argument for loading EPS images
 | 
			
		|||
 | 
			
		||||
This new argument switches the Ghostscript device from "ppmraw" to "pngalpha",
 | 
			
		||||
generating an RGBA image with a transparent background instead of an RGB image with a
 | 
			
		||||
white background.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
white background. ::
 | 
			
		||||
 | 
			
		||||
    with Image.open("sample.eps") as im:
 | 
			
		||||
        im.load(transparency=True)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -182,17 +182,13 @@ GifImagePlugin loading strategy
 | 
			
		|||
 | 
			
		||||
Pillow 9.0.0 introduced the conversion of subsequent GIF frames to ``RGB`` or ``RGBA``. This
 | 
			
		||||
behaviour can now be changed so that the first ``P`` frame is converted to ``RGB`` as
 | 
			
		||||
well.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
well. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import GifImagePlugin
 | 
			
		||||
    GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_ALWAYS
 | 
			
		||||
 | 
			
		||||
Or subsequent frames can be kept in ``P`` mode as long as there is only a single
 | 
			
		||||
palette.
 | 
			
		||||
 | 
			
		||||
.. code-block:: python
 | 
			
		||||
palette. ::
 | 
			
		||||
 | 
			
		||||
    from PIL import GifImagePlugin
 | 
			
		||||
    GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_AFTER_DIFFERENT_PALETTE_ONLY
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,9 +38,7 @@ def duplicate(image):
 | 
			
		|||
 | 
			
		||||
def invert(image):
 | 
			
		||||
    """
 | 
			
		||||
    Invert an image (channel).
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    Invert an image (channel). ::
 | 
			
		||||
 | 
			
		||||
        out = MAX - image
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -54,9 +52,7 @@ def invert(image):
 | 
			
		|||
def lighter(image1, image2):
 | 
			
		||||
    """
 | 
			
		||||
    Compares the two images, pixel by pixel, and returns a new image containing
 | 
			
		||||
    the lighter values.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    the lighter values. ::
 | 
			
		||||
 | 
			
		||||
        out = max(image1, image2)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -71,9 +67,7 @@ def lighter(image1, image2):
 | 
			
		|||
def darker(image1, image2):
 | 
			
		||||
    """
 | 
			
		||||
    Compares the two images, pixel by pixel, and returns a new image containing
 | 
			
		||||
    the darker values.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    the darker values. ::
 | 
			
		||||
 | 
			
		||||
        out = min(image1, image2)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -88,9 +82,7 @@ def darker(image1, image2):
 | 
			
		|||
def difference(image1, image2):
 | 
			
		||||
    """
 | 
			
		||||
    Returns the absolute value of the pixel-by-pixel difference between the two
 | 
			
		||||
    images.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    images. ::
 | 
			
		||||
 | 
			
		||||
        out = abs(image1 - image2)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -107,9 +99,7 @@ def multiply(image1, image2):
 | 
			
		|||
    Superimposes two images on top of each other.
 | 
			
		||||
 | 
			
		||||
    If you multiply an image with a solid black image, the result is black. If
 | 
			
		||||
    you multiply with a solid white image, the image is unaffected.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    you multiply with a solid white image, the image is unaffected. ::
 | 
			
		||||
 | 
			
		||||
        out = image1 * image2 / MAX
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -123,9 +113,7 @@ def multiply(image1, image2):
 | 
			
		|||
 | 
			
		||||
def screen(image1, image2):
 | 
			
		||||
    """
 | 
			
		||||
    Superimposes two inverted images on top of each other.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    Superimposes two inverted images on top of each other. ::
 | 
			
		||||
 | 
			
		||||
        out = MAX - ((MAX - image1) * (MAX - image2) / MAX)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -176,9 +164,7 @@ def overlay(image1, image2):
 | 
			
		|||
def add(image1, image2, scale=1.0, offset=0):
 | 
			
		||||
    """
 | 
			
		||||
    Adds two images, dividing the result by scale and adding the
 | 
			
		||||
    offset. If omitted, scale defaults to 1.0, and offset to 0.0.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    offset. If omitted, scale defaults to 1.0, and offset to 0.0. ::
 | 
			
		||||
 | 
			
		||||
        out = ((image1 + image2) / scale + offset)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -193,9 +179,7 @@ def add(image1, image2, scale=1.0, offset=0):
 | 
			
		|||
def subtract(image1, image2, scale=1.0, offset=0):
 | 
			
		||||
    """
 | 
			
		||||
    Subtracts two images, dividing the result by scale and adding the offset.
 | 
			
		||||
    If omitted, scale defaults to 1.0, and offset to 0.0.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    If omitted, scale defaults to 1.0, and offset to 0.0. ::
 | 
			
		||||
 | 
			
		||||
        out = ((image1 - image2) / scale + offset)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -208,9 +192,7 @@ def subtract(image1, image2, scale=1.0, offset=0):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def add_modulo(image1, image2):
 | 
			
		||||
    """Add two images, without clipping the result.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    """Add two images, without clipping the result. ::
 | 
			
		||||
 | 
			
		||||
        out = ((image1 + image2) % MAX)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -223,9 +205,7 @@ def add_modulo(image1, image2):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def subtract_modulo(image1, image2):
 | 
			
		||||
    """Subtract two images, without clipping the result.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    """Subtract two images, without clipping the result. ::
 | 
			
		||||
 | 
			
		||||
        out = ((image1 - image2) % MAX)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -243,9 +223,7 @@ def logical_and(image1, image2):
 | 
			
		|||
    Both of the images must have mode "1". If you would like to perform a
 | 
			
		||||
    logical AND on an image with a mode other than "1", try
 | 
			
		||||
    :py:meth:`~PIL.ImageChops.multiply` instead, using a black-and-white mask
 | 
			
		||||
    as the second image.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    as the second image. ::
 | 
			
		||||
 | 
			
		||||
        out = ((image1 and image2) % MAX)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -260,9 +238,7 @@ def logical_and(image1, image2):
 | 
			
		|||
def logical_or(image1, image2):
 | 
			
		||||
    """Logical OR between two images.
 | 
			
		||||
 | 
			
		||||
    Both of the images must have mode "1".
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    Both of the images must have mode "1". ::
 | 
			
		||||
 | 
			
		||||
        out = ((image1 or image2) % MAX)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -277,9 +253,7 @@ def logical_or(image1, image2):
 | 
			
		|||
def logical_xor(image1, image2):
 | 
			
		||||
    """Logical XOR between two images.
 | 
			
		||||
 | 
			
		||||
    Both of the images must have mode "1".
 | 
			
		||||
 | 
			
		||||
    .. code-block:: python
 | 
			
		||||
    Both of the images must have mode "1". ::
 | 
			
		||||
 | 
			
		||||
        out = ((bool(image1) != bool(image2)) % MAX)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -297,27 +297,21 @@ class FreeTypeFont:
 | 
			
		|||
        string due to kerning. If you need to adjust for kerning, include the following
 | 
			
		||||
        character and subtract its length.
 | 
			
		||||
 | 
			
		||||
        For example, instead of
 | 
			
		||||
 | 
			
		||||
        .. code-block:: python
 | 
			
		||||
        For example, instead of ::
 | 
			
		||||
 | 
			
		||||
          hello = font.getlength("Hello")
 | 
			
		||||
          world = font.getlength("World")
 | 
			
		||||
          hello_world = hello + world  # not adjusted for kerning
 | 
			
		||||
          assert hello_world == font.getlength("HelloWorld")  # may fail
 | 
			
		||||
 | 
			
		||||
        use
 | 
			
		||||
 | 
			
		||||
        .. code-block:: python
 | 
			
		||||
        use ::
 | 
			
		||||
 | 
			
		||||
          hello = font.getlength("HelloW") - font.getlength("W")  # adjusted for kerning
 | 
			
		||||
          world = font.getlength("World")
 | 
			
		||||
          hello_world = hello + world  # adjusted for kerning
 | 
			
		||||
          assert hello_world == font.getlength("HelloWorld")  # True
 | 
			
		||||
 | 
			
		||||
        or disable kerning with (requires libraqm)
 | 
			
		||||
 | 
			
		||||
        .. code-block:: python
 | 
			
		||||
        or disable kerning with (requires libraqm) ::
 | 
			
		||||
 | 
			
		||||
          hello = draw.textlength("Hello", font, features=["-kern"])
 | 
			
		||||
          world = draw.textlength("World", font, features=["-kern"])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user