ImageDraw Module ################ .. note:: All source images in this document are derived from https://www.pexels.com (CC0 License). .. |srcimg07| image:: _static/exams/data/srcimg07.jpg :width: 20% .. |srcimg12| image:: _static/exams/data/srcimg12.jpg :width: 20% class Draw ********** :doc: https://pillow.readthedocs.io/en/latest/reference/ImageDraw.html, http://effbot.org/imagingbook/imagedraw.htm .. note:: The graphics interface uses the same coordinate system as PIL itself, with (0, 0) in the upper left corner. .. warning:: Almost all of methods takes *xy* argument for sequence of points, and official documents says like this: xy - Sequence of either 2-tuples like :code:`[(x, y), (x, y), ...]` or numeric values like :code:`[x, y, x, y, ...]`. But it seems passing :code:`[x, y, x, y, ...]` does not work, at least PIL 1.1.7 of Pillow 2.9.0 on CPython 2.7. (Furthermore, note that this is NOT :code:`[[x, y], [x, y], ...]`. Passing :code:`[[x, y], [x, y], ...]` causes exception.) arc, chord, ellipse, pieslice, rectangle ======================================== .. |ImageDraw_arc_etc.res00| image:: _static/exams/result/ImageDraw_rectangle_01.jpg .. |ImageDraw_arc_etc.res01| image:: _static/exams/result/ImageDraw_ellipse_01.jpg .. |ImageDraw_arc_etc.res02| image:: _static/exams/result/ImageDraw_arc_01.jpg .. |ImageDraw_arc_etc.res03| image:: _static/exams/result/ImageDraw_chord_01.jpg .. |ImageDraw_arc_etc.res04| image:: _static/exams/result/ImageDraw_pieslice_01.jpg .. |ImageDraw_arc_etc.res05| image:: _static/exams/result/ImageDraw_arc_02.jpg .. |ImageDraw_arc_etc.res06| image:: _static/exams/result/ImageDraw_chord_02.jpg .. |ImageDraw_arc_etc.res07| image:: _static/exams/result/ImageDraw_pieslice_02.jpg .. list-table:: * - .. literalinclude:: _static/exams/ImageDraw_arc_chord_ellipse_pieslice_01.py - | |ImageDraw_arc_etc.res00| | rectangle | | |ImageDraw_arc_etc.res02| | arc(start=20, end=130) | | |ImageDraw_arc_etc.res03| | chord(start=20, end=130) | | |ImageDraw_arc_etc.res04| | pieslice(start=20, end=130) | - | |ImageDraw_arc_etc.res01| | ellipse | | |ImageDraw_arc_etc.res05| | arc(start=20, end=300) | | |ImageDraw_arc_etc.res06| | chord(start=20, end=300) | | |ImageDraw_arc_etc.res07| | pieslice(start=20, end=300) | bitmap ====== .. |ImageDraw_bitmap.res01| image:: _static/exams/result/ImageDraw_bitmap_01.png .. list-table:: * - srcimg07.jpg |srcimg07| .. list-table:: * - .. literalinclude:: _static/exams/ImageDraw_bitmap_01.py - |ImageDraw_bitmap.res01| line, polygon ============= .. |ImageDraw_polygon_line.res01| image:: _static/exams/result/ImageDraw_polygon_line_01.jpg .. |ImageDraw_polygon_line.res02| image:: _static/exams/result/ImageDraw_polygon_line_02.jpg .. list-table:: * - .. literalinclude:: _static/exams/ImageDraw_polygon_line_01.py - | |ImageDraw_polygon_line.res01| | polygon with outline | | |ImageDraw_polygon_line.res02| | polygon and line with the same xy point ===== .. |ImageDraw_point.res01| image:: _static/exams/result/ImageDraw_point_01.jpg .. |ImageDraw_point.res02| image:: _static/exams/result/ImageDraw_point_02.jpg .. list-table:: * - .. literalinclude:: _static/exams/ImageDraw_point_01.py - draw single point |ImageDraw_point.res01| * - .. literalinclude:: _static/exams/ImageDraw_point_02.py - draw points |ImageDraw_point.res02| .. _ImageDraw_text: text, textsize ============== .. list-table:: * - srcimg12.jpg |srcimg12| .. |ImageDraw_text.res01| image:: _static/exams/result/ImageDraw_text_01.jpg .. |ImageDraw_text.res03| image:: _static/exams/result/ImageDraw_text_03.jpg .. list-table:: :widths: 15 10 * - .. literalinclude:: _static/exams/ImageDraw_text_01.py - |ImageDraw_text.res01| * - .. literalinclude:: _static/exams/ImageDraw_text_02.py - -> `result <_static/exams/result/ImageDraw_text_02_result.txt>`__ * - .. literalinclude:: _static/exams/ImageDraw_text_02_2.py - -> `result <_static/exams/result/ImageDraw_text_02_2_result.txt>`__ * - .. literalinclude:: _static/exams/ImageDraw_text_03.py - |ImageDraw_text.res03| .. _ImageDraw_multiline_text: multiline_text, multiline_textsize ================================== .. list-table:: * - srcimg12.jpg |srcimg12| .. |ImageDraw_multiline_text.res01| image:: _static/exams/result/ImageDraw_multiline_text_01.jpg .. list-table:: * - .. literalinclude:: _static/exams/ImageDraw_multiline_text_01.py - |ImageDraw_multiline_text.res01| .. |ImageDraw_multiline_text.res02| image:: _static/exams/result/ImageDraw_multiline_text_02.png .. list-table:: * - .. literalinclude:: _static/exams/ImageDraw_multiline_text_02.py - |ImageDraw_multiline_text.res02|