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