Linux worldls-302.fr.planethoster.net 4.18.0-553.8.1.lve.el7h.x86_64 #1 SMP Thu Jul 4 15:19:33 UTC 2024 x86_64
LiteSpeed
Server IP : 10.185.0.203 & Your IP : 216.73.216.32
Domains :
Cant Read [ /etc/named.conf ]
User : gerathty
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
lib64 /
python2.7 /
site-packages /
PIL /
Delete
Unzip
Name
Size
Permission
Date
Action
ArgImagePlugin.py
12.17
KB
-rw-r--r--
2024-02-22 08:02
ArgImagePlugin.pyc
12.79
KB
-rw-r--r--
2024-02-22 08:02
ArgImagePlugin.pyo
12.79
KB
-rw-r--r--
2024-02-22 08:02
BdfFontFile.py
3.27
KB
-rw-r--r--
2024-02-22 08:02
BdfFontFile.pyc
2.97
KB
-rw-r--r--
2024-02-22 08:02
BdfFontFile.pyo
2.97
KB
-rw-r--r--
2024-02-22 08:02
BmpImagePlugin.py
6.52
KB
-rw-r--r--
2024-02-22 08:02
BmpImagePlugin.pyc
5.34
KB
-rw-r--r--
2024-02-22 08:02
BmpImagePlugin.pyo
5.34
KB
-rw-r--r--
2024-02-22 08:02
BufrStubImagePlugin.py
1.46
KB
-rw-r--r--
2024-02-22 08:02
BufrStubImagePlugin.pyc
2
KB
-rw-r--r--
2024-02-22 08:02
BufrStubImagePlugin.pyo
2
KB
-rw-r--r--
2024-02-22 08:02
ContainerIO.py
2.54
KB
-rw-r--r--
2024-02-22 08:02
ContainerIO.pyc
2.09
KB
-rw-r--r--
2024-02-22 08:02
ContainerIO.pyo
2.09
KB
-rw-r--r--
2024-02-22 08:02
CurImagePlugin.py
1.89
KB
-rw-r--r--
2024-02-22 08:02
CurImagePlugin.pyc
1.64
KB
-rw-r--r--
2024-02-22 08:02
CurImagePlugin.pyo
1.64
KB
-rw-r--r--
2024-02-22 08:02
DcxImagePlugin.py
1.76
KB
-rw-r--r--
2024-02-22 08:02
DcxImagePlugin.pyc
1.9
KB
-rw-r--r--
2024-02-22 08:02
DcxImagePlugin.pyo
1.9
KB
-rw-r--r--
2024-02-22 08:02
EpsImagePlugin.py
10.64
KB
-rw-r--r--
2024-02-22 08:02
EpsImagePlugin.pyc
9.44
KB
-rw-r--r--
2024-02-22 08:02
EpsImagePlugin.pyo
9.44
KB
-rw-r--r--
2024-02-22 08:02
ExifTags.py
4.69
KB
-rw-r--r--
2024-02-22 08:02
ExifTags.pyc
4.81
KB
-rw-r--r--
2024-02-22 08:02
ExifTags.pyo
4.81
KB
-rw-r--r--
2024-02-22 08:02
FitsStubImagePlugin.py
1.61
KB
-rw-r--r--
2024-02-22 08:02
FitsStubImagePlugin.pyc
2.01
KB
-rw-r--r--
2024-02-22 08:02
FitsStubImagePlugin.pyo
2.01
KB
-rw-r--r--
2024-02-22 08:02
FliImagePlugin.py
3.37
KB
-rw-r--r--
2024-02-22 08:02
FliImagePlugin.pyc
3.5
KB
-rw-r--r--
2024-02-22 08:02
FliImagePlugin.pyo
3.5
KB
-rw-r--r--
2024-02-22 08:02
FontFile.py
3.32
KB
-rw-r--r--
2024-02-22 08:02
FontFile.pyc
3.5
KB
-rw-r--r--
2024-02-22 08:02
FontFile.pyo
3.5
KB
-rw-r--r--
2024-02-22 08:02
FpxImagePlugin.py
6.04
KB
-rw-r--r--
2024-02-22 08:02
FpxImagePlugin.pyc
4.55
KB
-rw-r--r--
2024-02-22 08:02
FpxImagePlugin.pyo
4.55
KB
-rw-r--r--
2024-02-22 08:02
GbrImagePlugin.py
1.54
KB
-rw-r--r--
2024-02-22 08:02
GbrImagePlugin.pyc
1.81
KB
-rw-r--r--
2024-02-22 08:02
GbrImagePlugin.pyo
1.81
KB
-rw-r--r--
2024-02-22 08:02
GdImageFile.py
2.11
KB
-rw-r--r--
2024-02-22 08:02
GdImageFile.pyc
1.68
KB
-rw-r--r--
2024-02-22 08:02
GdImageFile.pyo
1.68
KB
-rw-r--r--
2024-02-22 08:02
GifImagePlugin.py
11.09
KB
-rw-r--r--
2024-02-22 08:02
GifImagePlugin.pyc
7.95
KB
-rw-r--r--
2024-02-22 08:02
GifImagePlugin.pyo
7.95
KB
-rw-r--r--
2024-02-22 08:02
GimpGradientFile.py
3.1
KB
-rw-r--r--
2024-02-22 08:02
GimpGradientFile.pyc
3.61
KB
-rw-r--r--
2024-02-22 08:02
GimpGradientFile.pyo
3.61
KB
-rw-r--r--
2024-02-22 08:02
GimpPaletteFile.py
1.3
KB
-rw-r--r--
2024-02-22 08:02
GimpPaletteFile.pyc
1.47
KB
-rw-r--r--
2024-02-22 08:02
GimpPaletteFile.pyo
1.47
KB
-rw-r--r--
2024-02-22 08:02
GribStubImagePlugin.py
1.47
KB
-rw-r--r--
2024-02-22 08:02
GribStubImagePlugin.pyc
2.01
KB
-rw-r--r--
2024-02-22 08:02
GribStubImagePlugin.pyo
2.01
KB
-rw-r--r--
2024-02-22 08:02
Hdf5StubImagePlugin.py
1.51
KB
-rw-r--r--
2024-02-22 08:02
Hdf5StubImagePlugin.pyc
2.01
KB
-rw-r--r--
2024-02-22 08:02
Hdf5StubImagePlugin.pyo
2.01
KB
-rw-r--r--
2024-02-22 08:02
IcnsImagePlugin.py
6.09
KB
-rw-r--r--
2024-02-22 08:02
IcnsImagePlugin.pyc
6.56
KB
-rw-r--r--
2024-02-22 08:02
IcnsImagePlugin.pyo
6.56
KB
-rw-r--r--
2024-02-22 08:02
IcoImagePlugin.py
1.84
KB
-rw-r--r--
2024-02-22 08:02
IcoImagePlugin.pyc
1.59
KB
-rw-r--r--
2024-02-22 08:02
IcoImagePlugin.pyo
1.59
KB
-rw-r--r--
2024-02-22 08:02
ImImagePlugin.py
9.8
KB
-rw-r--r--
2024-02-22 08:02
ImImagePlugin.pyc
8.04
KB
-rw-r--r--
2024-02-22 08:02
ImImagePlugin.pyo
8.04
KB
-rw-r--r--
2024-02-22 08:02
Image.py
67.81
KB
-rw-r--r--
2024-02-22 08:02
Image.pyc
39.15
KB
-rw-r--r--
2024-02-22 08:02
Image.pyo
39.15
KB
-rw-r--r--
2024-02-22 08:02
ImageChops.py
7.25
KB
-rw-r--r--
2024-02-22 08:02
ImageChops.pyc
4.97
KB
-rw-r--r--
2024-02-22 08:02
ImageChops.pyo
4.97
KB
-rw-r--r--
2024-02-22 08:02
ImageCms.py
29.63
KB
-rw-r--r--
2024-02-22 08:02
ImageCms.pyc
12.13
KB
-rw-r--r--
2024-02-22 08:02
ImageCms.pyo
12.13
KB
-rw-r--r--
2024-02-22 08:02
ImageColor.py
7.04
KB
-rw-r--r--
2024-02-22 08:02
ImageColor.pyc
6.92
KB
-rw-r--r--
2024-02-22 08:02
ImageColor.pyo
6.92
KB
-rw-r--r--
2024-02-22 08:02
ImageDraw.py
11.36
KB
-rw-r--r--
2024-02-22 08:02
ImageDraw.pyc
8.63
KB
-rw-r--r--
2024-02-22 08:02
ImageDraw.pyo
8.63
KB
-rw-r--r--
2024-02-22 08:02
ImageDraw2.py
3.11
KB
-rw-r--r--
2024-02-22 08:02
ImageDraw2.pyc
5.1
KB
-rw-r--r--
2024-02-22 08:02
ImageDraw2.pyo
5.1
KB
-rw-r--r--
2024-02-22 08:02
ImageEnhance.py
2.71
KB
-rw-r--r--
2024-02-22 08:02
ImageEnhance.pyc
2.54
KB
-rw-r--r--
2024-02-22 08:02
ImageEnhance.pyo
2.54
KB
-rw-r--r--
2024-02-22 08:02
ImageFile.py
14.72
KB
-rw-r--r--
2024-02-22 08:02
ImageFile.pyc
9.74
KB
-rw-r--r--
2024-02-22 08:02
ImageFile.pyo
9.64
KB
-rw-r--r--
2024-02-22 08:02
ImageFileIO.py
968
B
-rw-r--r--
2024-02-22 08:02
ImageFileIO.pyc
614
B
-rw-r--r--
2024-02-22 08:02
ImageFileIO.pyo
614
B
-rw-r--r--
2024-02-22 08:02
ImageFilter.py
6.51
KB
-rw-r--r--
2024-02-22 08:02
ImageFilter.pyc
8.7
KB
-rw-r--r--
2024-02-22 08:02
ImageFilter.pyo
8.7
KB
-rw-r--r--
2024-02-22 08:02
ImageFont.py
17.38
KB
-rw-r--r--
2024-02-22 08:02
ImageFont.pyc
15.96
KB
-rw-r--r--
2024-02-22 08:02
ImageFont.pyo
15.96
KB
-rw-r--r--
2024-02-22 08:02
ImageGL.py
483
B
-rw-r--r--
2024-02-22 08:02
ImageGL.pyc
394
B
-rw-r--r--
2024-02-22 08:02
ImageGL.pyo
394
B
-rw-r--r--
2024-02-22 08:02
ImageGrab.py
1.85
KB
-rw-r--r--
2024-02-22 08:02
ImageGrab.pyc
1.07
KB
-rw-r--r--
2024-02-22 08:02
ImageGrab.pyo
1.07
KB
-rw-r--r--
2024-02-22 08:02
ImageMath.py
7.66
KB
-rw-r--r--
2024-02-22 08:02
ImageMath.pyc
10.94
KB
-rw-r--r--
2024-02-22 08:02
ImageMath.pyo
10.94
KB
-rw-r--r--
2024-02-22 08:02
ImageMode.py
1.27
KB
-rw-r--r--
2024-02-22 08:02
ImageMode.pyc
1.34
KB
-rw-r--r--
2024-02-22 08:02
ImageMode.pyo
1.34
KB
-rw-r--r--
2024-02-22 08:02
ImageOps.py
13
KB
-rw-r--r--
2024-02-22 08:02
ImageOps.pyc
8.43
KB
-rw-r--r--
2024-02-22 08:02
ImageOps.pyo
8.38
KB
-rw-r--r--
2024-02-22 08:02
ImagePalette.py
5.4
KB
-rw-r--r--
2024-02-22 08:02
ImagePalette.pyc
5.7
KB
-rw-r--r--
2024-02-22 08:02
ImagePalette.pyo
5.7
KB
-rw-r--r--
2024-02-22 08:02
ImagePath.py
1.32
KB
-rw-r--r--
2024-02-22 08:02
ImagePath.pyc
1.36
KB
-rw-r--r--
2024-02-22 08:02
ImagePath.pyo
1.36
KB
-rw-r--r--
2024-02-22 08:02
ImageSequence.py
792
B
-rw-r--r--
2024-02-22 08:02
ImageSequence.pyc
903
B
-rw-r--r--
2024-02-22 08:02
ImageSequence.pyo
903
B
-rw-r--r--
2024-02-22 08:02
ImageShow.py
4.45
KB
-rw-r--r--
2024-02-22 08:02
ImageShow.pyc
5.22
KB
-rw-r--r--
2024-02-22 08:02
ImageShow.pyo
5.22
KB
-rw-r--r--
2024-02-22 08:02
ImageStat.py
4.22
KB
-rw-r--r--
2024-02-22 08:02
ImageStat.pyc
4.66
KB
-rw-r--r--
2024-02-22 08:02
ImageStat.pyo
4.66
KB
-rw-r--r--
2024-02-22 08:02
ImageTransform.py
2.8
KB
-rw-r--r--
2024-02-22 08:02
ImageTransform.pyc
1.87
KB
-rw-r--r--
2024-02-22 08:02
ImageTransform.pyo
1.87
KB
-rw-r--r--
2024-02-22 08:02
ImageWin.py
6.73
KB
-rw-r--r--
2024-02-22 08:02
ImageWin.pyc
6.55
KB
-rw-r--r--
2024-02-22 08:02
ImageWin.pyo
6.55
KB
-rw-r--r--
2024-02-22 08:02
ImtImagePlugin.py
2.17
KB
-rw-r--r--
2024-02-22 08:02
ImtImagePlugin.pyc
1.56
KB
-rw-r--r--
2024-02-22 08:02
ImtImagePlugin.pyo
1.56
KB
-rw-r--r--
2024-02-22 08:02
IptcImagePlugin.py
7.52
KB
-rw-r--r--
2024-02-22 08:02
IptcImagePlugin.pyc
6.29
KB
-rw-r--r--
2024-02-22 08:02
IptcImagePlugin.pyo
6.29
KB
-rw-r--r--
2024-02-22 08:02
JpegImagePlugin.py
19.42
KB
-rw-r--r--
2024-02-22 08:02
JpegImagePlugin.pyc
16.24
KB
-rw-r--r--
2024-02-22 08:02
JpegImagePlugin.pyo
16.24
KB
-rw-r--r--
2024-02-22 08:02
JpegPresets.py
12.05
KB
-rw-r--r--
2024-02-22 08:02
JpegPresets.pyc
6.3
KB
-rw-r--r--
2024-02-22 08:02
JpegPresets.pyo
6.3
KB
-rw-r--r--
2024-02-22 08:02
McIdasImagePlugin.py
1.69
KB
-rw-r--r--
2024-02-22 08:02
McIdasImagePlugin.pyc
1.67
KB
-rw-r--r--
2024-02-22 08:02
McIdasImagePlugin.pyo
1.67
KB
-rw-r--r--
2024-02-22 08:02
MicImagePlugin.py
2.12
KB
-rw-r--r--
2024-02-22 08:02
MicImagePlugin.pyc
2.09
KB
-rw-r--r--
2024-02-22 08:02
MicImagePlugin.pyo
2.09
KB
-rw-r--r--
2024-02-22 08:02
MpegImagePlugin.py
1.79
KB
-rw-r--r--
2024-02-22 08:02
MpegImagePlugin.pyc
2.49
KB
-rw-r--r--
2024-02-22 08:02
MpegImagePlugin.pyo
2.49
KB
-rw-r--r--
2024-02-22 08:02
MspImagePlugin.py
2.12
KB
-rw-r--r--
2024-02-22 08:02
MspImagePlugin.pyc
2.39
KB
-rw-r--r--
2024-02-22 08:02
MspImagePlugin.pyo
2.39
KB
-rw-r--r--
2024-02-22 08:02
OleFileIO.py
15.92
KB
-rw-r--r--
2024-02-22 08:02
OleFileIO.pyc
12.62
KB
-rw-r--r--
2024-02-22 08:02
OleFileIO.pyo
12.62
KB
-rw-r--r--
2024-02-22 08:02
PSDraw.py
5.57
KB
-rw-r--r--
2024-02-22 08:02
PSDraw.pyc
5.5
KB
-rw-r--r--
2024-02-22 08:02
PSDraw.pyo
5.5
KB
-rw-r--r--
2024-02-22 08:02
PaletteFile.py
1.08
KB
-rw-r--r--
2024-02-22 08:02
PaletteFile.pyc
1.31
KB
-rw-r--r--
2024-02-22 08:02
PaletteFile.pyo
1.31
KB
-rw-r--r--
2024-02-22 08:02
PalmImagePlugin.py
9.33
KB
-rw-r--r--
2024-02-22 08:02
PalmImagePlugin.pyc
9.39
KB
-rw-r--r--
2024-02-22 08:02
PalmImagePlugin.pyo
9.39
KB
-rw-r--r--
2024-02-22 08:02
PcdImagePlugin.py
1.77
KB
-rw-r--r--
2024-02-22 08:02
PcdImagePlugin.pyc
1.73
KB
-rw-r--r--
2024-02-22 08:02
PcdImagePlugin.pyo
1.73
KB
-rw-r--r--
2024-02-22 08:02
PcfFontFile.py
6.03
KB
-rw-r--r--
2024-02-22 08:02
PcfFontFile.pyc
6.2
KB
-rw-r--r--
2024-02-22 08:02
PcfFontFile.pyo
6.2
KB
-rw-r--r--
2024-02-22 08:02
PcxImagePlugin.py
4.53
KB
-rw-r--r--
2024-02-22 08:02
PcxImagePlugin.pyc
3.84
KB
-rw-r--r--
2024-02-22 08:02
PcxImagePlugin.pyo
3.78
KB
-rw-r--r--
2024-02-22 08:02
PdfImagePlugin.py
5.73
KB
-rw-r--r--
2024-02-22 08:02
PdfImagePlugin.pyc
5.04
KB
-rw-r--r--
2024-02-22 08:02
PdfImagePlugin.pyo
5.04
KB
-rw-r--r--
2024-02-22 08:02
PixarImagePlugin.py
1.57
KB
-rw-r--r--
2024-02-22 08:02
PixarImagePlugin.pyc
1.24
KB
-rw-r--r--
2024-02-22 08:02
PixarImagePlugin.pyo
1.24
KB
-rw-r--r--
2024-02-22 08:02
PngImagePlugin.py
18.19
KB
-rw-r--r--
2024-02-22 08:02
PngImagePlugin.pyc
17.9
KB
-rw-r--r--
2024-02-22 08:02
PngImagePlugin.pyo
17.9
KB
-rw-r--r--
2024-02-22 08:02
PpmImagePlugin.py
3.23
KB
-rw-r--r--
2024-02-22 08:02
PpmImagePlugin.pyc
2.94
KB
-rw-r--r--
2024-02-22 08:02
PpmImagePlugin.pyo
2.94
KB
-rw-r--r--
2024-02-22 08:02
PsdImagePlugin.py
7.28
KB
-rw-r--r--
2024-02-22 08:02
PsdImagePlugin.pyc
6.17
KB
-rw-r--r--
2024-02-22 08:02
PsdImagePlugin.pyo
6.17
KB
-rw-r--r--
2024-02-22 08:02
SgiImagePlugin.py
2.05
KB
-rw-r--r--
2024-02-22 08:02
SgiImagePlugin.pyc
2
KB
-rw-r--r--
2024-02-22 08:02
SgiImagePlugin.pyo
2
KB
-rw-r--r--
2024-02-22 08:02
SunImagePlugin.py
1.9
KB
-rw-r--r--
2024-02-22 08:02
SunImagePlugin.pyc
1.99
KB
-rw-r--r--
2024-02-22 08:02
SunImagePlugin.pyo
1.99
KB
-rw-r--r--
2024-02-22 08:02
TarIO.py
1.19
KB
-rw-r--r--
2024-02-22 08:02
TarIO.pyc
1.08
KB
-rw-r--r--
2024-02-22 08:02
TarIO.pyo
1.08
KB
-rw-r--r--
2024-02-22 08:02
TgaImagePlugin.py
4.83
KB
-rw-r--r--
2024-02-22 08:02
TgaImagePlugin.pyc
4.14
KB
-rw-r--r--
2024-02-22 08:02
TgaImagePlugin.pyo
4.14
KB
-rw-r--r--
2024-02-22 08:02
TiffImagePlugin.py
34.05
KB
-rw-r--r--
2024-02-22 08:02
TiffImagePlugin.pyc
26.2
KB
-rw-r--r--
2024-02-22 08:02
TiffImagePlugin.pyo
26.07
KB
-rw-r--r--
2024-02-22 08:02
TiffTags.py
4.53
KB
-rw-r--r--
2024-02-22 08:02
TiffTags.pyc
4.9
KB
-rw-r--r--
2024-02-22 08:02
TiffTags.pyo
4.9
KB
-rw-r--r--
2024-02-22 08:02
WalImageFile.py
5.39
KB
-rw-r--r--
2024-02-22 08:02
WalImageFile.pyc
2.13
KB
-rw-r--r--
2024-02-22 08:02
WalImageFile.pyo
2.13
KB
-rw-r--r--
2024-02-22 08:02
WebPImagePlugin.py
978
B
-rw-r--r--
2024-02-22 08:02
WebPImagePlugin.pyc
1.86
KB
-rw-r--r--
2024-02-22 08:02
WebPImagePlugin.pyo
1.86
KB
-rw-r--r--
2024-02-22 08:02
WmfImagePlugin.py
4
KB
-rw-r--r--
2024-02-22 08:02
WmfImagePlugin.pyc
3.97
KB
-rw-r--r--
2024-02-22 08:02
WmfImagePlugin.pyo
3.97
KB
-rw-r--r--
2024-02-22 08:02
XVThumbImagePlugin.py
1.8
KB
-rw-r--r--
2024-02-22 08:02
XVThumbImagePlugin.pyc
1.6
KB
-rw-r--r--
2024-02-22 08:02
XVThumbImagePlugin.pyo
1.6
KB
-rw-r--r--
2024-02-22 08:02
XbmImagePlugin.py
2.39
KB
-rw-r--r--
2024-02-22 08:02
XbmImagePlugin.pyc
2.52
KB
-rw-r--r--
2024-02-22 08:02
XbmImagePlugin.pyo
2.52
KB
-rw-r--r--
2024-02-22 08:02
XpmImagePlugin.py
3.01
KB
-rw-r--r--
2024-02-22 08:02
XpmImagePlugin.pyc
2.8
KB
-rw-r--r--
2024-02-22 08:02
XpmImagePlugin.pyo
2.8
KB
-rw-r--r--
2024-02-22 08:02
__init__.py
183
B
-rw-r--r--
2024-02-22 08:02
__init__.pyc
137
B
-rw-r--r--
2024-02-22 08:02
__init__.pyo
137
B
-rw-r--r--
2024-02-22 08:02
_binary.py
1.09
KB
-rw-r--r--
2024-02-22 08:02
_binary.pyc
2.52
KB
-rw-r--r--
2024-02-22 08:02
_binary.pyo
2.52
KB
-rw-r--r--
2024-02-22 08:02
Save
Rename
# # The Python Imaging Library. # $Id$ # # PIL raster font management # # History: # 1996-08-07 fl created (experimental) # 1997-08-25 fl minor adjustments to handle fonts from pilfont 0.3 # 1999-02-06 fl rewrote most font management stuff in C # 1999-03-17 fl take pth files into account in load_path (from Richard Jones) # 2001-02-17 fl added freetype support # 2001-05-09 fl added TransposedFont wrapper class # 2002-03-04 fl make sure we have a "L" or "1" font # 2002-12-04 fl skip non-directory entries in the system path # 2003-04-29 fl add embedded default font # 2003-09-27 fl added support for truetype charmap encodings # # Todo: # Adapt to PILFONT2 format (16-bit fonts, compressed, single file) # # Copyright (c) 1997-2003 by Secret Labs AB # Copyright (c) 1996-2003 by Fredrik Lundh # # See the README file for information on usage and redistribution. # from __future__ import print_function from PIL import Image import os, sys class _imagingft_not_installed: # module placeholder def __getattr__(self, id): raise ImportError("The _imagingft C module is not installed") MAX_STRING_LENGTH = 1000000 try: import _imagingft as core except ImportError: core = _imagingft_not_installed() def _string_length_check(text): if MAX_STRING_LENGTH is not None and len(text) > MAX_STRING_LENGTH: msg = "too many characters in string" raise ValueError(msg) # FIXME: add support for pilfont2 format (see FontFile.py) # -------------------------------------------------------------------- # Font metrics format: # "PILfont" LF # fontdescriptor LF # (optional) key=value... LF # "DATA" LF # binary data: 256*10*2 bytes (dx, dy, dstbox, srcbox) # # To place a character, cut out srcbox and paste at dstbox, # relative to the character position. Then move the character # position according to dx, dy. # -------------------------------------------------------------------- ## # The <b>ImageFont</b> module defines a class with the same name. # Instances of this class store bitmap fonts, and are used with the # <b>text</b> method of the <b>ImageDraw</b> class. # <p> # PIL uses it's own font file format to store bitmap fonts. You can # use the <b>pilfont</b> utility to convert BDF and PCF font # descriptors (X window font formats) to this format. # <p> # Starting with version 1.1.4, PIL can be configured to support # TrueType and OpenType fonts. For earlier version, TrueType # support is only available as part of the imToolkit package # # @see ImageDraw#ImageDraw.text # @see pilfont class ImageFont: "PIL font wrapper" def _load_pilfont(self, filename): file = open(filename, "rb") for ext in (".png", ".gif", ".pbm"): try: fullname = os.path.splitext(filename)[0] + ext image = Image.open(fullname) except: pass else: if image and image.mode in ("1", "L"): break else: raise IOError("cannot find glyph data file") self.file = fullname return self._load_pilfont_data(file, image) def _load_pilfont_data(self, file, image): # read PILfont header if file.readline() != b"PILfont\n": raise SyntaxError("Not a PILfont file") d = file.readline().split(b";") self.info = [] # FIXME: should be a dictionary while True: s = file.readline() if not s or s == b"DATA\n": break self.info.append(s) # read PILfont metrics data = file.read(256*20) # check image if image.mode not in ("1", "L"): raise TypeError("invalid font image mode") image.load() self.font = Image.core.font(image.im, data) def getsize(self, text): _string_length_check(text) return self.font.getsize(text) def getmask(self, text, mode=""): return self.font.getmask(text, mode) ## # Wrapper for FreeType fonts. Application code should use the # <b>truetype</b> factory function to create font objects. class FreeTypeFont: "FreeType font wrapper (requires _imagingft service)" def __init__(self, file, size, index=0, encoding=""): # FIXME: use service provider instead self.font = core.getfont(file, size, index, encoding) def getname(self): return self.font.family, self.font.style def getmetrics(self): return self.font.ascent, self.font.descent def getsize(self, text): _string_length_check(text) return self.font.getsize(text)[0] def getmask(self, text, mode=""): return self.getmask2(text, mode)[0] def getmask2(self, text, mode="", fill=Image.core.fill): _string_length_check(text) size, offset = self.font.getsize(text) im = fill("L", size, 0) self.font.render(text, im.id, mode=="1") return im, offset ## # Wrapper that creates a transposed font from any existing font # object. # # @param font A font object. # @param orientation An optional orientation. If given, this should # be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM, # Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270. class TransposedFont: "Wrapper for writing rotated or mirrored text" def __init__(self, font, orientation=None): self.font = font self.orientation = orientation # any 'transpose' argument, or None def getsize(self, text): _string_length_check(text) w, h = self.font.getsize(text) if self.orientation in (Image.ROTATE_90, Image.ROTATE_270): return h, w return w, h def getmask(self, text, mode=""): im = self.font.getmask(text, mode) if self.orientation is not None: return im.transpose(self.orientation) return im ## # Load font file. This function loads a font object from the given # bitmap font file, and returns the corresponding font object. # # @param filename Name of font file. # @return A font object. # @exception IOError If the file could not be read. def load(filename): "Load a font file." f = ImageFont() f._load_pilfont(filename) return f ## # Load a TrueType or OpenType font file, and create a font object. # This function loads a font object from the given file, and creates # a font object for a font of the given size. # <p> # This function requires the _imagingft service. # # @param filename A truetype font file. Under Windows, if the file # is not found in this filename, the loader also looks in Windows # <b>fonts</b> directory # @param size The requested size, in points. # @param index Which font face to load (default is first available face). # @param encoding Which font encoding to use (default is Unicode). Common # encodings are "unic" (Unicode), "symb" (Microsoft Symbol), "ADOB" # (Adobe Standard), "ADBE" (Adobe Expert), and "armn" (Apple Roman). # See the FreeType documentation for more information. # @return A font object. # @exception IOError If the file could not be read. def truetype(filename, size, index=0, encoding=""): "Load a truetype font file." try: return FreeTypeFont(filename, size, index, encoding) except IOError: if sys.platform == "win32": # check the windows font repository # NOTE: must use uppercase WINDIR, to work around bugs in # 1.5.2's os.environ.get() windir = os.environ.get("WINDIR") if windir: filename = os.path.join(windir, "fonts", filename) return FreeTypeFont(filename, size, index, encoding) raise ## # Load font file. Same as load, but searches for a bitmap font along # the Python path. # # @param filename Name of font file. # @return A font object. # @exception IOError If the file could not be read. # @see #load def load_path(filename): "Load a font file, searching along the Python path." for dir in sys.path: if Image.isDirectory(dir): try: return load(os.path.join(dir, filename)) except IOError: pass raise IOError("cannot find font file") ## # Load a (probably rather ugly) default font. # # @return A font object. def load_default(): "Load a default font." from io import BytesIO import base64 f = ImageFont() f._load_pilfont_data( # courB08 BytesIO(base64.decodestring(b''' UElMZm9udAo7Ozs7OzsxMDsKREFUQQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAA//8AAQAAAAAAAAABAAEA BgAAAAH/+gADAAAAAQAAAAMABgAGAAAAAf/6AAT//QADAAAABgADAAYAAAAA//kABQABAAYAAAAL AAgABgAAAAD/+AAFAAEACwAAABAACQAGAAAAAP/5AAUAAAAQAAAAFQAHAAYAAP////oABQAAABUA AAAbAAYABgAAAAH/+QAE//wAGwAAAB4AAwAGAAAAAf/5AAQAAQAeAAAAIQAIAAYAAAAB//kABAAB ACEAAAAkAAgABgAAAAD/+QAE//0AJAAAACgABAAGAAAAAP/6AAX//wAoAAAALQAFAAYAAAAB//8A BAACAC0AAAAwAAMABgAAAAD//AAF//0AMAAAADUAAQAGAAAAAf//AAMAAAA1AAAANwABAAYAAAAB //kABQABADcAAAA7AAgABgAAAAD/+QAFAAAAOwAAAEAABwAGAAAAAP/5AAYAAABAAAAARgAHAAYA AAAA//kABQAAAEYAAABLAAcABgAAAAD/+QAFAAAASwAAAFAABwAGAAAAAP/5AAYAAABQAAAAVgAH AAYAAAAA//kABQAAAFYAAABbAAcABgAAAAD/+QAFAAAAWwAAAGAABwAGAAAAAP/5AAUAAABgAAAA ZQAHAAYAAAAA//kABQAAAGUAAABqAAcABgAAAAD/+QAFAAAAagAAAG8ABwAGAAAAAf/8AAMAAABv AAAAcQAEAAYAAAAA//wAAwACAHEAAAB0AAYABgAAAAD/+gAE//8AdAAAAHgABQAGAAAAAP/7AAT/ /gB4AAAAfAADAAYAAAAB//oABf//AHwAAACAAAUABgAAAAD/+gAFAAAAgAAAAIUABgAGAAAAAP/5 AAYAAQCFAAAAiwAIAAYAAP////oABgAAAIsAAACSAAYABgAA////+gAFAAAAkgAAAJgABgAGAAAA AP/6AAUAAACYAAAAnQAGAAYAAP////oABQAAAJ0AAACjAAYABgAA////+gAFAAAAowAAAKkABgAG AAD////6AAUAAACpAAAArwAGAAYAAAAA//oABQAAAK8AAAC0AAYABgAA////+gAGAAAAtAAAALsA BgAGAAAAAP/6AAQAAAC7AAAAvwAGAAYAAP////oABQAAAL8AAADFAAYABgAA////+gAGAAAAxQAA AMwABgAGAAD////6AAUAAADMAAAA0gAGAAYAAP////oABQAAANIAAADYAAYABgAA////+gAGAAAA 2AAAAN8ABgAGAAAAAP/6AAUAAADfAAAA5AAGAAYAAP////oABQAAAOQAAADqAAYABgAAAAD/+gAF AAEA6gAAAO8ABwAGAAD////6AAYAAADvAAAA9gAGAAYAAAAA//oABQAAAPYAAAD7AAYABgAA//// +gAFAAAA+wAAAQEABgAGAAD////6AAYAAAEBAAABCAAGAAYAAP////oABgAAAQgAAAEPAAYABgAA ////+gAGAAABDwAAARYABgAGAAAAAP/6AAYAAAEWAAABHAAGAAYAAP////oABgAAARwAAAEjAAYA BgAAAAD/+gAFAAABIwAAASgABgAGAAAAAf/5AAQAAQEoAAABKwAIAAYAAAAA//kABAABASsAAAEv AAgABgAAAAH/+QAEAAEBLwAAATIACAAGAAAAAP/5AAX//AEyAAABNwADAAYAAAAAAAEABgACATcA AAE9AAEABgAAAAH/+QAE//wBPQAAAUAAAwAGAAAAAP/7AAYAAAFAAAABRgAFAAYAAP////kABQAA AUYAAAFMAAcABgAAAAD/+wAFAAABTAAAAVEABQAGAAAAAP/5AAYAAAFRAAABVwAHAAYAAAAA//sA BQAAAVcAAAFcAAUABgAAAAD/+QAFAAABXAAAAWEABwAGAAAAAP/7AAYAAgFhAAABZwAHAAYAAP// //kABQAAAWcAAAFtAAcABgAAAAD/+QAGAAABbQAAAXMABwAGAAAAAP/5AAQAAgFzAAABdwAJAAYA AP////kABgAAAXcAAAF+AAcABgAAAAD/+QAGAAABfgAAAYQABwAGAAD////7AAUAAAGEAAABigAF AAYAAP////sABQAAAYoAAAGQAAUABgAAAAD/+wAFAAABkAAAAZUABQAGAAD////7AAUAAgGVAAAB mwAHAAYAAAAA//sABgACAZsAAAGhAAcABgAAAAD/+wAGAAABoQAAAacABQAGAAAAAP/7AAYAAAGn AAABrQAFAAYAAAAA//kABgAAAa0AAAGzAAcABgAA////+wAGAAABswAAAboABQAGAAD////7AAUA AAG6AAABwAAFAAYAAP////sABgAAAcAAAAHHAAUABgAAAAD/+wAGAAABxwAAAc0ABQAGAAD////7 AAYAAgHNAAAB1AAHAAYAAAAA//sABQAAAdQAAAHZAAUABgAAAAH/+QAFAAEB2QAAAd0ACAAGAAAA Av/6AAMAAQHdAAAB3gAHAAYAAAAA//kABAABAd4AAAHiAAgABgAAAAD/+wAF//0B4gAAAecAAgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB //sAAwACAecAAAHpAAcABgAAAAD/+QAFAAEB6QAAAe4ACAAGAAAAAP/5AAYAAAHuAAAB9AAHAAYA AAAA//oABf//AfQAAAH5AAUABgAAAAD/+QAGAAAB+QAAAf8ABwAGAAAAAv/5AAMAAgH/AAACAAAJ AAYAAAAA//kABQABAgAAAAIFAAgABgAAAAH/+gAE//sCBQAAAggAAQAGAAAAAP/5AAYAAAIIAAAC DgAHAAYAAAAB//kABf/+Ag4AAAISAAUABgAA////+wAGAAACEgAAAhkABQAGAAAAAP/7AAX//gIZ AAACHgADAAYAAAAA//wABf/9Ah4AAAIjAAEABgAAAAD/+QAHAAACIwAAAioABwAGAAAAAP/6AAT/ +wIqAAACLgABAAYAAAAA//kABP/8Ai4AAAIyAAMABgAAAAD/+gAFAAACMgAAAjcABgAGAAAAAf/5 AAT//QI3AAACOgAEAAYAAAAB//kABP/9AjoAAAI9AAQABgAAAAL/+QAE//sCPQAAAj8AAgAGAAD/ ///7AAYAAgI/AAACRgAHAAYAAAAA//kABgABAkYAAAJMAAgABgAAAAH//AAD//0CTAAAAk4AAQAG AAAAAf//AAQAAgJOAAACUQADAAYAAAAB//kABP/9AlEAAAJUAAQABgAAAAH/+QAF//4CVAAAAlgA BQAGAAD////7AAYAAAJYAAACXwAFAAYAAP////kABgAAAl8AAAJmAAcABgAA////+QAGAAACZgAA Am0ABwAGAAD////5AAYAAAJtAAACdAAHAAYAAAAA//sABQACAnQAAAJ5AAcABgAA////9wAGAAAC eQAAAoAACQAGAAD////3AAYAAAKAAAAChwAJAAYAAP////cABgAAAocAAAKOAAkABgAA////9wAG AAACjgAAApUACQAGAAD////4AAYAAAKVAAACnAAIAAYAAP////cABgAAApwAAAKjAAkABgAA//// +gAGAAACowAAAqoABgAGAAAAAP/6AAUAAgKqAAACrwAIAAYAAP////cABQAAAq8AAAK1AAkABgAA ////9wAFAAACtQAAArsACQAGAAD////3AAUAAAK7AAACwQAJAAYAAP////gABQAAAsEAAALHAAgA BgAAAAD/9wAEAAACxwAAAssACQAGAAAAAP/3AAQAAALLAAACzwAJAAYAAAAA//cABAAAAs8AAALT AAkABgAAAAD/+AAEAAAC0wAAAtcACAAGAAD////6AAUAAALXAAAC3QAGAAYAAP////cABgAAAt0A AALkAAkABgAAAAD/9wAFAAAC5AAAAukACQAGAAAAAP/3AAUAAALpAAAC7gAJAAYAAAAA//cABQAA Au4AAALzAAkABgAAAAD/9wAFAAAC8wAAAvgACQAGAAAAAP/4AAUAAAL4AAAC/QAIAAYAAAAA//oA Bf//Av0AAAMCAAUABgAA////+gAGAAADAgAAAwkABgAGAAD////3AAYAAAMJAAADEAAJAAYAAP// //cABgAAAxAAAAMXAAkABgAA////9wAGAAADFwAAAx4ACQAGAAD////4AAYAAAAAAAoABwASAAYA AP////cABgAAAAcACgAOABMABgAA////+gAFAAAADgAKABQAEAAGAAD////6AAYAAAAUAAoAGwAQ AAYAAAAA//gABgAAABsACgAhABIABgAAAAD/+AAGAAAAIQAKACcAEgAGAAAAAP/4AAYAAAAnAAoA LQASAAYAAAAA//gABgAAAC0ACgAzABIABgAAAAD/+QAGAAAAMwAKADkAEQAGAAAAAP/3AAYAAAA5 AAoAPwATAAYAAP////sABQAAAD8ACgBFAA8ABgAAAAD/+wAFAAIARQAKAEoAEQAGAAAAAP/4AAUA AABKAAoATwASAAYAAAAA//gABQAAAE8ACgBUABIABgAAAAD/+AAFAAAAVAAKAFkAEgAGAAAAAP/5 AAUAAABZAAoAXgARAAYAAAAA//gABgAAAF4ACgBkABIABgAAAAD/+AAGAAAAZAAKAGoAEgAGAAAA AP/4AAYAAABqAAoAcAASAAYAAAAA//kABgAAAHAACgB2ABEABgAAAAD/+AAFAAAAdgAKAHsAEgAG AAD////4AAYAAAB7AAoAggASAAYAAAAA//gABQAAAIIACgCHABIABgAAAAD/+AAFAAAAhwAKAIwA EgAGAAAAAP/4AAUAAACMAAoAkQASAAYAAAAA//gABQAAAJEACgCWABIABgAAAAD/+QAFAAAAlgAK AJsAEQAGAAAAAP/6AAX//wCbAAoAoAAPAAYAAAAA//oABQABAKAACgClABEABgAA////+AAGAAAA pQAKAKwAEgAGAAD////4AAYAAACsAAoAswASAAYAAP////gABgAAALMACgC6ABIABgAA////+QAG AAAAugAKAMEAEQAGAAD////4AAYAAgDBAAoAyAAUAAYAAP////kABQACAMgACgDOABMABgAA//// +QAGAAIAzgAKANUAEw== ''')), Image.open(BytesIO(base64.decodestring(b''' iVBORw0KGgoAAAANSUhEUgAAAx4AAAAUAQAAAAArMtZoAAAEwElEQVR4nABlAJr/AHVE4czCI/4u Mc4b7vuds/xzjz5/3/7u/n9vMe7vnfH/9++vPn/xyf5zhxzjt8GHw8+2d83u8x27199/nxuQ6Od9 M43/5z2I+9n9ZtmDBwMQECDRQw/eQIQohJXxpBCNVE6QCCAAAAD//wBlAJr/AgALyj1t/wINwq0g LeNZUworuN1cjTPIzrTX6ofHWeo3v336qPzfEwRmBnHTtf95/fglZK5N0PDgfRTslpGBvz7LFc4F IUXBWQGjQ5MGCx34EDFPwXiY4YbYxavpnhHFrk14CDAAAAD//wBlAJr/AgKqRooH2gAgPeggvUAA Bu2WfgPoAwzRAABAAAAAAACQgLz/3Uv4Gv+gX7BJgDeeGP6AAAD1NMDzKHD7ANWr3loYbxsAD791 NAADfcoIDyP44K/jv4Y63/Z+t98Ovt+ub4T48LAAAAD//wBlAJr/AuplMlADJAAAAGuAphWpqhMx in0A/fRvAYBABPgBwBUgABBQ/sYAyv9g0bCHgOLoGAAAAAAAREAAwI7nr0ArYpow7aX8//9LaP/9 SjdavWA8ePHeBIKB//81/83ndznOaXx379wAAAD//wBlAJr/AqDxW+D3AABAAbUh/QMnbQag/gAY AYDAAACgtgD/gOqAAAB5IA/8AAAk+n9w0AAA8AAAmFRJuPo27ciC0cD5oeW4E7KA/wD3ECMAn2tt y8PgwH8AfAxFzC0JzeAMtratAsC/ffwAAAD//wBlAJr/BGKAyCAA4AAAAvgeYTAwHd1kmQF5chkG ABoMIHcL5xVpTfQbUqzlAAAErwAQBgAAEOClA5D9il08AEh/tUzdCBsXkbgACED+woQg8Si9VeqY lODCn7lmF6NhnAEYgAAA/NMIAAAAAAD//2JgjLZgVGBg5Pv/Tvpc8hwGBjYGJADjHDrAwPzAjv/H /Wf3PzCwtzcwHmBgYGcwbZz8wHaCAQMDOwMDQ8MCBgYOC3W7mp+f0w+wHOYxO3OG+e376hsMZjk3 AAAAAP//YmCMY2A4wMAIN5e5gQETPD6AZisDAwMDgzSDAAPjByiHcQMDAwMDg1nOze1lByRu5/47 c4859311AYNZzg0AAAAA//9iYGDBYihOIIMuwIjGL39/fwffA8b//xv/P2BPtzzHwCBjUQAAAAD/ /yLFBrIBAAAA//9i1HhcwdhizX7u8NZNzyLbvT97bfrMf/QHI8evOwcSqGUJAAAA//9iYBB81iSw pEE170Qrg5MIYydHqwdDQRMrAwcVrQAAAAD//2J4x7j9AAMDn8Q/BgYLBoaiAwwMjPdvMDBYM1Tv oJodAAAAAP//Yqo/83+dxePWlxl3npsel9lvLfPcqlE9725C+acfVLMEAAAA//9i+s9gwCoaaGMR evta/58PTEWzr21hufPjA8N+qlnBwAAAAAD//2JiWLci5v1+HmFXDqcnULE/MxgYGBj+f6CaJQAA AAD//2Ji2FrkY3iYpYC5qDeGgeEMAwPDvwQBBoYvcTwOVLMEAAAA//9isDBgkP///0EOg9z35v// Gc/eeW7BwPj5+QGZhANUswMAAAD//2JgqGBgYGBgqEMXlvhMPUsAAAAA//8iYDd1AAAAAP//AwDR w7IkEbzhVQAAAABJRU5ErkJggg== ''')))) return f if __name__ == "__main__": # create font data chunk for embedding import base64, os, sys font = "../Images/courB08" print(" f._load_pilfont_data(") print(" # %s" % os.path.basename(font)) print(" BytesIO(base64.decodestring(b'''") base64.encode(open(font + ".pil", "rb"), sys.stdout) print("''')), Image.open(BytesIO(base64.decodestring(b'''") base64.encode(open(font + ".pbm", "rb"), sys.stdout) print("'''))))")