Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the
Python Imaging Library by Fredrik Lundh and Contributors. As of 2019, Pillow
development is supported by Tidelift.
The Python Imaging Library adds image processing capabilities to your Python
interpreter.
This library provides extensive file format support, an efficient internal
representation, and fairly powerful image processing capabilities.
The core image library is designed for fast access to data stored in a few basic
pixel formats. It should provide a solid foundation for a general image
processing tool.
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above. NOTE: This is a Python port. Instead of py312-pillow listed in the above command, you can pick from the names under the Packages section.
===> The following configuration options are available for py312-pillow-13.0.0:
AVIF=on: AV1 Image File Format via libavif
FREETYPE=on: TrueType font rendering support
IMAGEQUANT=on: Image Quantization support
JPEG2000=on: JPEG 2000 support
LCMS=on: Little Color Management System
OLE=on: Microsoft OLE2 file format support
RAQM=on: Complex text layout support
TIFF=on: TIFF image format support
TKINTER=on: Tkinter (Tcl/Tk) BitmapImage & PhotoImage support
WEBP=on: WebP image format support
XCB=on: X11 screengrab support
===> Use 'make config' to modify these settings
port moved here from devel/py-types-Pillow on 2025-08-12 REASON: Remove obsoleted port. The Pillow package includes type annotations or type stubs since version 10.3.0. Use graphics/py-pillow instead
devel/py-setuptools: convert individual consumers to ${PY_SETUPTOOLS}
Currently a no-op, but in the future outputs the correct setuptools
port depending on whether USES_PYTHON=distutils is specified.
With hat: python
PR: 270510, 270358
all: remove explicit versions in USES=python for "3.x+"
The logic in USES=python will automatically convert this to 3.8+ by
itself.
Adjust two ports that only had Python 3.7 mentioned but build fine
on Python 3.8 too.
finance/quickfix: mark BROKEN with PYTHON
libtool: compile: c++ -DHAVE_CONFIG_H -I. -I../.. -I -I. -I.. -I../.. -I../C++
-DLIBICONV_PLUG -DPYTHON_MAJOR_VERSION=3 -Wno-unused-variable
-Wno-maybe-uninitialized -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong
-fno-strict-aliasing -DLIBICONV_PLUG -Wall -ansi
-Wno-unused-command-line-argument -Wpointer-arith -Wwrite-strings
-Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-deprecated -std=c++0x
-MT _quickfix_la-QuickfixPython.lo -MD -MP -MF
.deps/_quickfix_la-QuickfixPython.Tpo -c QuickfixPython.cpp -fPIC -DPIC -o
.libs/_quickfix_la-QuickfixPython.o
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
QuickfixPython.cpp:175:11: fatal error: 'Python.h' file not found
^~~~~~~~~~
1 warning and 1 error generated.
Reviewed by: portmgr, vishwin, yuri
Differential Revision: <https://reviews.freebsd.org/D40568>
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
graphics/py-pillow: Update to 7.0.0
* Repo-Copy the Pillow 6.2.2 release to graphics/py-pillow6 to retain
backwards compatibility for Python 2 consumers as the Pillow 7.0.0 release
dropped the support for Python 2.
* Apply conditional statements to use either Pillow 7.x or Pillow 6.x for
consumers that can be built for Python 2 or newer.
* Exceptions are ports that can be built only for either Python 2 or
Python 3. For the first case, consumers are just assigned to the
repo-copied graphics/py-pillow6.
* Also remove Pillow from BUILD_DEPENDS of math/py-PyWavelets as it is not
listed in setup.py as a build dependency [1] and relax the version
(Only the first 15 lines of the commit message are shown above )
graphics/py-pillow: Enable default support for LCMS
Convert the LCMS option, which installs graphics/lcms2 and enables the
bindings for LCMS (= Little Color Management System), into a default one.
The library liblcms2.so from graphics/lcms2 is already installed implicitly
through graphics/openjpeg using the default option JPEG2000 but Pillow's own
main library, _imaging.so, is not linked against it.
Thus do the same as in r504993 by making the LCMS option as default to get
real use out of liblcms2.so that has been already there.
Approved by: koobs (maintainer)
graphics/py-pillow: Enable default support for TIFF images
Add the TIFF knob, which installs graphics/tiff and enables the bindings for
TIFF image support, to the default options.
The library libtiff.so from graphics/tiff is already installed implicitly
through graphics/openjpeg using the default option JPEG2000 but Pillow's own
main library, _imaging.so, is not linked against it.
Thus convert the TIFF option into a default one to gain real use of the
libtiff.so that has been already there.
Approved by: koobs (maintainer)
Convert Python ports to FLAVORS.
Ports using USE_PYTHON=distutils are now flavored. They will
automatically get flavors (py27, py34, py35, py36) depending on what
versions they support.
There is also a USE_PYTHON=flavors for ports that do not use distutils
but need FLAVORS to be set. A USE_PYTHON=noflavors can be set if
using distutils but flavors are not wanted.
A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
added to cope with Python ports that did not have the Python
PKGNAMEPREFIX but are flavored.
USES=python now also exports a PY_FLAVOR variable that contains the
(Only the first 15 lines of the commit message are shown above )
Create new port graphics/py3-pillow:
- This is a variant of graphics/py-pillow for Python 3.x.
A separate port is needed until the ports tree gets VARIANTS support.
The science/gramps port will soon be updated to a version which only
supports python3, and it depends on py-pillow with python3.
To allow people to only use packages directly (and not ports),
the package building infrastructure needs to build 2 packages:
py-pillow with python2 and py-pillow with python3.
Since the ports tree doesn't yet have VARIANTS support, this is not
yet possible without making a separate py3-pillow port.
- Ensure graphics/py-pillow does not clobber USES and TKINTER_xxx_DEPENDS
variables in slave port
- Remove duplicate USES= line in graphics/py-pillow
PR: 207040
Approved by: mat, adamw (mentors), koobs (maintainer)
Differential Revision: https://reviews.freebsd.org/D6433
graphics/py-pillow: Fix OPT_VARS, Enable WEBP by default
After converting if PORT_OPTIONS:MOPTION PYDISTUTILS_BUILDARGS to
OPTION_VARS=PYDISTUTILS_BUILDARGS in r409464 [1], it was reported
that the port failed to build with the following error:
ValueError: --enable-tcl requested but tcl not found
Investigation revealed that only the first of the TKINTER_VARS{_OFF}
values was being assigned. The root cause appears to be that
OPTIONS_VARS=VAR=<value> does not support multiple space-separated
values, unless:
a) Values are quoted: OPTION_VARS=VAR="value1 value1", OR
b) Multiple assignments are made: OPTION_VAR=VAR+=value1 VAR+=value2
(Only the first 15 lines of the commit message are shown above )
- Use TKINTER as default for py-pillow, since some ports
(e.g. games/pysolfc) rely on it.
PR: 194818
Reported by: Dana (dj9bsd@gmail.com)
With hat: python@
The FreeBSD x11@ and graphics team proudly presents
a zeising, kwm production, with help from dumbbell, bdrewery:
NEW XORG ON FREEBSD 9-STABLE AND 10-STABLE
This update switches over to use the new xorg stack by default on FreeBSD 9
and 10 stable, on osversions where vt(9) is available.
It is still possible to use the old stack by specifying WITHOUT_NEW_XORG in
/etc/make.conf .
FreeBSD 8-STABLE and released versions of FreeBSD still use
the old version.
A package repository with binary packages for new xorg will
be available soon.
This patch also contains updates of libxcb and related ports, pixman, as well
(Only the first 15 lines of the commit message are shown above )
graphics/py-pillow: Update to 2.3.0, Add OPTIONS, Modernise
- Update to 2.3.0
- Add OPTIONS: FREETYPE JPEG LCMS PNG TIFF WEBP
- Enable STAGE support
- Enable AUTOPLIST support, delete pkg-plist
- Convert to new LIB_DEPENDS format
- Replace use of PYDISTUTILS_PKGNAME with PORTNAME:modifier
- Add LICENSE section
- Delete unecessary patches
Changes: https://github.com/python-imaging/Pillow/blob/2.3.0/CHANGES.rst
Based on extended version of patch provided in:
PR: ports/186726
Submitted by: tota
Update freetype to 2.5.2.
Remove patch to add -I/usr/local/include in freetype-config --cflags. If
ports need extra headers they should look for them, and not get them via
a side-effect.
Freetype had a header resuffle in 2.5.1, patch ports to use the new header
style.
Thanks go to bdrewery for the two exp-runs and rakuco for helping me with
some troublesome cmake ports.
PR: ports/184587
Update MAINTAINER address for all my ports. While I'm here,
standardise and canonicalise Makefile header format and contents.
Approved by: eadler (mentor)
Pillow is the "friendly" PIL fork. PIL is the Python Imaging Library. Pillow
was started for and is currently maintained by the Plone community. But it is
used by many other folks in the Python web community.
WWW: http://github.com/collective/Pillow
PR: ports/168750
Submitted by: koobs <koobs.freebsd@gmail.com>