Added ascii2img installation
Added uninstallation script
This commit is contained in:
1
ascii2img/ENV/lib/python3.6/__future__.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/__future__.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/__future__.py
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/abc.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/abc.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/base64.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/base64.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/bisect.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/bisect.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/codecs.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/codecs.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/copy.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/copy.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/copyreg.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/copyreg.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/enum.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/enum.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/fnmatch.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/fnmatch.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/functools.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/functools.cpython-36.pyc
Normal file
Binary file not shown.
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/hashlib.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/hashlib.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/heapq.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/heapq.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/hmac.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/hmac.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/imp.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/imp.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/io.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/io.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/keyword.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/keyword.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/linecache.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/linecache.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/locale.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/locale.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/operator.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/operator.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/os.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/os.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/posixpath.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/posixpath.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/random.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/random.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/re.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/re.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/reprlib.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/reprlib.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/shutil.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/shutil.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/site.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/site.cpython-36.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/sre_parse.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/sre_parse.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/stat.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/stat.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/struct.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/struct.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/tarfile.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/tarfile.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/tempfile.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/tempfile.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/token.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/token.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/tokenize.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/tokenize.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/types.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/types.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/warnings.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/warnings.cpython-36.pyc
Normal file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/__pycache__/weakref.cpython-36.pyc
Normal file
BIN
ascii2img/ENV/lib/python3.6/__pycache__/weakref.cpython-36.pyc
Normal file
Binary file not shown.
1
ascii2img/ENV/lib/python3.6/_bootlocale.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/_bootlocale.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/_bootlocale.py
|
||||
1
ascii2img/ENV/lib/python3.6/_collections_abc.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/_collections_abc.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/_collections_abc.py
|
||||
1
ascii2img/ENV/lib/python3.6/_dummy_thread.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/_dummy_thread.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/_dummy_thread.py
|
||||
1
ascii2img/ENV/lib/python3.6/_weakrefset.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/_weakrefset.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/_weakrefset.py
|
||||
1
ascii2img/ENV/lib/python3.6/abc.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/abc.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/abc.py
|
||||
1
ascii2img/ENV/lib/python3.6/base64.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/base64.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/base64.py
|
||||
1
ascii2img/ENV/lib/python3.6/bisect.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/bisect.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/bisect.py
|
||||
1
ascii2img/ENV/lib/python3.6/codecs.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/codecs.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/codecs.py
|
||||
1
ascii2img/ENV/lib/python3.6/collections
Symbolic link
1
ascii2img/ENV/lib/python3.6/collections
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/collections
|
||||
1
ascii2img/ENV/lib/python3.6/config-3.6m-x86_64-linux-gnu
Symbolic link
1
ascii2img/ENV/lib/python3.6/config-3.6m-x86_64-linux-gnu
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu
|
||||
1
ascii2img/ENV/lib/python3.6/copy.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/copy.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/copy.py
|
||||
1
ascii2img/ENV/lib/python3.6/copyreg.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/copyreg.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/copyreg.py
|
||||
101
ascii2img/ENV/lib/python3.6/distutils/__init__.py
Normal file
101
ascii2img/ENV/lib/python3.6/distutils/__init__.py
Normal file
@@ -0,0 +1,101 @@
|
||||
import os
|
||||
import sys
|
||||
import warnings
|
||||
import imp
|
||||
import opcode # opcode is not a virtualenv module, so we can use it to find the stdlib
|
||||
# Important! To work on pypy, this must be a module that resides in the
|
||||
# lib-python/modified-x.y.z directory
|
||||
|
||||
dirname = os.path.dirname
|
||||
|
||||
distutils_path = os.path.join(os.path.dirname(opcode.__file__), 'distutils')
|
||||
if os.path.normpath(distutils_path) == os.path.dirname(os.path.normpath(__file__)):
|
||||
warnings.warn(
|
||||
"The virtualenv distutils package at %s appears to be in the same location as the system distutils?")
|
||||
else:
|
||||
__path__.insert(0, distutils_path)
|
||||
real_distutils = imp.load_module("_virtualenv_distutils", None, distutils_path, ('', '', imp.PKG_DIRECTORY))
|
||||
# Copy the relevant attributes
|
||||
try:
|
||||
__revision__ = real_distutils.__revision__
|
||||
except AttributeError:
|
||||
pass
|
||||
__version__ = real_distutils.__version__
|
||||
|
||||
from distutils import dist, sysconfig
|
||||
|
||||
try:
|
||||
basestring
|
||||
except NameError:
|
||||
basestring = str
|
||||
|
||||
## patch build_ext (distutils doesn't know how to get the libs directory
|
||||
## path on windows - it hardcodes the paths around the patched sys.prefix)
|
||||
|
||||
if sys.platform == 'win32':
|
||||
from distutils.command.build_ext import build_ext as old_build_ext
|
||||
class build_ext(old_build_ext):
|
||||
def finalize_options (self):
|
||||
if self.library_dirs is None:
|
||||
self.library_dirs = []
|
||||
elif isinstance(self.library_dirs, basestring):
|
||||
self.library_dirs = self.library_dirs.split(os.pathsep)
|
||||
|
||||
self.library_dirs.insert(0, os.path.join(sys.real_prefix, "Libs"))
|
||||
old_build_ext.finalize_options(self)
|
||||
|
||||
from distutils.command import build_ext as build_ext_module
|
||||
build_ext_module.build_ext = build_ext
|
||||
|
||||
## distutils.dist patches:
|
||||
|
||||
old_find_config_files = dist.Distribution.find_config_files
|
||||
def find_config_files(self):
|
||||
found = old_find_config_files(self)
|
||||
system_distutils = os.path.join(distutils_path, 'distutils.cfg')
|
||||
#if os.path.exists(system_distutils):
|
||||
# found.insert(0, system_distutils)
|
||||
# What to call the per-user config file
|
||||
if os.name == 'posix':
|
||||
user_filename = ".pydistutils.cfg"
|
||||
else:
|
||||
user_filename = "pydistutils.cfg"
|
||||
user_filename = os.path.join(sys.prefix, user_filename)
|
||||
if os.path.isfile(user_filename):
|
||||
for item in list(found):
|
||||
if item.endswith('pydistutils.cfg'):
|
||||
found.remove(item)
|
||||
found.append(user_filename)
|
||||
return found
|
||||
dist.Distribution.find_config_files = find_config_files
|
||||
|
||||
## distutils.sysconfig patches:
|
||||
|
||||
old_get_python_inc = sysconfig.get_python_inc
|
||||
def sysconfig_get_python_inc(plat_specific=0, prefix=None):
|
||||
if prefix is None:
|
||||
prefix = sys.real_prefix
|
||||
return old_get_python_inc(plat_specific, prefix)
|
||||
sysconfig_get_python_inc.__doc__ = old_get_python_inc.__doc__
|
||||
sysconfig.get_python_inc = sysconfig_get_python_inc
|
||||
|
||||
old_get_python_lib = sysconfig.get_python_lib
|
||||
def sysconfig_get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
|
||||
if standard_lib and prefix is None:
|
||||
prefix = sys.real_prefix
|
||||
return old_get_python_lib(plat_specific, standard_lib, prefix)
|
||||
sysconfig_get_python_lib.__doc__ = old_get_python_lib.__doc__
|
||||
sysconfig.get_python_lib = sysconfig_get_python_lib
|
||||
|
||||
old_get_config_vars = sysconfig.get_config_vars
|
||||
def sysconfig_get_config_vars(*args):
|
||||
real_vars = old_get_config_vars(*args)
|
||||
if sys.platform == 'win32':
|
||||
lib_dir = os.path.join(sys.real_prefix, "libs")
|
||||
if isinstance(real_vars, dict) and 'LIBDIR' not in real_vars:
|
||||
real_vars['LIBDIR'] = lib_dir # asked for all
|
||||
elif isinstance(real_vars, list) and 'LIBDIR' in args:
|
||||
real_vars = real_vars + [lib_dir] # asked for list
|
||||
return real_vars
|
||||
sysconfig_get_config_vars.__doc__ = old_get_config_vars.__doc__
|
||||
sysconfig.get_config_vars = sysconfig_get_config_vars
|
||||
Binary file not shown.
6
ascii2img/ENV/lib/python3.6/distutils/distutils.cfg
Normal file
6
ascii2img/ENV/lib/python3.6/distutils/distutils.cfg
Normal file
@@ -0,0 +1,6 @@
|
||||
# This is a config file local to this virtualenv installation
|
||||
# You may include options that will be used by all distutils commands,
|
||||
# and by easy_install. For instance:
|
||||
#
|
||||
# [easy_install]
|
||||
# find_links = http://mylocalsite
|
||||
1
ascii2img/ENV/lib/python3.6/encodings
Symbolic link
1
ascii2img/ENV/lib/python3.6/encodings
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/encodings
|
||||
1
ascii2img/ENV/lib/python3.6/enum.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/enum.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/enum.py
|
||||
1
ascii2img/ENV/lib/python3.6/fnmatch.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/fnmatch.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/fnmatch.py
|
||||
1
ascii2img/ENV/lib/python3.6/functools.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/functools.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/functools.py
|
||||
1
ascii2img/ENV/lib/python3.6/genericpath.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/genericpath.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/genericpath.py
|
||||
1
ascii2img/ENV/lib/python3.6/hashlib.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/hashlib.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/hashlib.py
|
||||
1
ascii2img/ENV/lib/python3.6/heapq.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/heapq.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/heapq.py
|
||||
1
ascii2img/ENV/lib/python3.6/hmac.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/hmac.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/hmac.py
|
||||
1
ascii2img/ENV/lib/python3.6/imp.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/imp.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/imp.py
|
||||
1
ascii2img/ENV/lib/python3.6/importlib
Symbolic link
1
ascii2img/ENV/lib/python3.6/importlib
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/importlib
|
||||
1
ascii2img/ENV/lib/python3.6/io.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/io.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/io.py
|
||||
1
ascii2img/ENV/lib/python3.6/keyword.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/keyword.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/keyword.py
|
||||
1
ascii2img/ENV/lib/python3.6/lib-dynload
Symbolic link
1
ascii2img/ENV/lib/python3.6/lib-dynload
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/lib-dynload
|
||||
1
ascii2img/ENV/lib/python3.6/linecache.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/linecache.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/linecache.py
|
||||
1
ascii2img/ENV/lib/python3.6/locale.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/locale.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/locale.py
|
||||
1
ascii2img/ENV/lib/python3.6/ntpath.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/ntpath.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/ntpath.py
|
||||
1
ascii2img/ENV/lib/python3.6/operator.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/operator.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/operator.py
|
||||
1
ascii2img/ENV/lib/python3.6/orig-prefix.txt
Normal file
1
ascii2img/ENV/lib/python3.6/orig-prefix.txt
Normal file
@@ -0,0 +1 @@
|
||||
/usr
|
||||
1
ascii2img/ENV/lib/python3.6/os.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/os.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/os.py
|
||||
1
ascii2img/ENV/lib/python3.6/posixpath.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/posixpath.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/posixpath.py
|
||||
1
ascii2img/ENV/lib/python3.6/random.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/random.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/random.py
|
||||
1
ascii2img/ENV/lib/python3.6/re.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/re.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/re.py
|
||||
1
ascii2img/ENV/lib/python3.6/reprlib.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/reprlib.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/reprlib.py
|
||||
1
ascii2img/ENV/lib/python3.6/rlcompleter.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/rlcompleter.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/rlcompleter.py
|
||||
1
ascii2img/ENV/lib/python3.6/shutil.py
Symbolic link
1
ascii2img/ENV/lib/python3.6/shutil.py
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/python3.6/shutil.py
|
||||
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libjpeg-bcb94a84.so.9.2.0
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libjpeg-bcb94a84.so.9.2.0
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/liblcms2-08bcf862.so.2.0.8
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/liblcms2-08bcf862.so.2.0.8
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/liblzma-f444c404.so.5.2.2
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/liblzma-f444c404.so.5.2.2
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libopenjp2-59185378.so.2.1.0
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libopenjp2-59185378.so.2.1.0
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libpng16-4b619e46.so.16.25.0
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libpng16-4b619e46.so.16.25.0
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libtiff-16d54532.so.5.3.0
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libtiff-16d54532.so.5.3.0
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libwebp-186dc9a0.so.7.0.1
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libwebp-186dc9a0.so.7.0.1
Executable file
Binary file not shown.
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libwebpmux-26347042.so.3.0.1
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libwebpmux-26347042.so.3.0.1
Executable file
Binary file not shown.
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libz-a147dcb0.so.1.2.3
Executable file
BIN
ascii2img/ENV/lib/python3.6/site-packages/PIL/.libs/libz-a147dcb0.so.1.2.3
Executable file
Binary file not shown.
133
ascii2img/ENV/lib/python3.6/site-packages/PIL/BdfFontFile.py
Normal file
133
ascii2img/ENV/lib/python3.6/site-packages/PIL/BdfFontFile.py
Normal file
@@ -0,0 +1,133 @@
|
||||
#
|
||||
# The Python Imaging Library
|
||||
# $Id$
|
||||
#
|
||||
# bitmap distribution font (bdf) file parser
|
||||
#
|
||||
# history:
|
||||
# 1996-05-16 fl created (as bdf2pil)
|
||||
# 1997-08-25 fl converted to FontFile driver
|
||||
# 2001-05-25 fl removed bogus __init__ call
|
||||
# 2002-11-20 fl robustification (from Kevin Cazabon, Dmitry Vasiliev)
|
||||
# 2003-04-22 fl more robustification (from Graham Dumpleton)
|
||||
#
|
||||
# Copyright (c) 1997-2003 by Secret Labs AB.
|
||||
# Copyright (c) 1997-2003 by Fredrik Lundh.
|
||||
#
|
||||
# See the README file for information on usage and redistribution.
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
from . import Image, FontFile
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# parse X Bitmap Distribution Format (BDF)
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
bdf_slant = {
|
||||
"R": "Roman",
|
||||
"I": "Italic",
|
||||
"O": "Oblique",
|
||||
"RI": "Reverse Italic",
|
||||
"RO": "Reverse Oblique",
|
||||
"OT": "Other"
|
||||
}
|
||||
|
||||
bdf_spacing = {
|
||||
"P": "Proportional",
|
||||
"M": "Monospaced",
|
||||
"C": "Cell"
|
||||
}
|
||||
|
||||
|
||||
def bdf_char(f):
|
||||
# skip to STARTCHAR
|
||||
while True:
|
||||
s = f.readline()
|
||||
if not s:
|
||||
return None
|
||||
if s[:9] == b"STARTCHAR":
|
||||
break
|
||||
id = s[9:].strip().decode('ascii')
|
||||
|
||||
# load symbol properties
|
||||
props = {}
|
||||
while True:
|
||||
s = f.readline()
|
||||
if not s or s[:6] == b"BITMAP":
|
||||
break
|
||||
i = s.find(b" ")
|
||||
props[s[:i].decode('ascii')] = s[i+1:-1].decode('ascii')
|
||||
|
||||
# load bitmap
|
||||
bitmap = []
|
||||
while True:
|
||||
s = f.readline()
|
||||
if not s or s[:7] == b"ENDCHAR":
|
||||
break
|
||||
bitmap.append(s[:-1])
|
||||
bitmap = b"".join(bitmap)
|
||||
|
||||
[x, y, l, d] = [int(p) for p in props["BBX"].split()]
|
||||
[dx, dy] = [int(p) for p in props["DWIDTH"].split()]
|
||||
|
||||
bbox = (dx, dy), (l, -d-y, x+l, -d), (0, 0, x, y)
|
||||
|
||||
try:
|
||||
im = Image.frombytes("1", (x, y), bitmap, "hex", "1")
|
||||
except ValueError:
|
||||
# deal with zero-width characters
|
||||
im = Image.new("1", (x, y))
|
||||
|
||||
return id, int(props["ENCODING"]), bbox, im
|
||||
|
||||
|
||||
##
|
||||
# Font file plugin for the X11 BDF format.
|
||||
|
||||
class BdfFontFile(FontFile.FontFile):
|
||||
|
||||
def __init__(self, fp):
|
||||
|
||||
FontFile.FontFile.__init__(self)
|
||||
|
||||
s = fp.readline()
|
||||
if s[:13] != b"STARTFONT 2.1":
|
||||
raise SyntaxError("not a valid BDF file")
|
||||
|
||||
props = {}
|
||||
comments = []
|
||||
|
||||
while True:
|
||||
s = fp.readline()
|
||||
if not s or s[:13] == b"ENDPROPERTIES":
|
||||
break
|
||||
i = s.find(b" ")
|
||||
props[s[:i].decode('ascii')] = s[i+1:-1].decode('ascii')
|
||||
if s[:i] in [b"COMMENT", b"COPYRIGHT"]:
|
||||
if s.find(b"LogicalFontDescription") < 0:
|
||||
comments.append(s[i+1:-1].decode('ascii'))
|
||||
|
||||
# font = props["FONT"].split("-")
|
||||
|
||||
# font[4] = bdf_slant[font[4].upper()]
|
||||
# font[11] = bdf_spacing[font[11].upper()]
|
||||
|
||||
# ascent = int(props["FONT_ASCENT"])
|
||||
# descent = int(props["FONT_DESCENT"])
|
||||
|
||||
# fontname = ";".join(font[1:])
|
||||
|
||||
# print("#", fontname)
|
||||
# for i in comments:
|
||||
# print("#", i)
|
||||
|
||||
while True:
|
||||
c = bdf_char(fp)
|
||||
if not c:
|
||||
break
|
||||
id, ch, (xy, dst, src), im = c
|
||||
if 0 <= ch < len(self.glyph):
|
||||
self.glyph[ch] = xy, dst, src, im
|
||||
287
ascii2img/ENV/lib/python3.6/site-packages/PIL/BmpImagePlugin.py
Normal file
287
ascii2img/ENV/lib/python3.6/site-packages/PIL/BmpImagePlugin.py
Normal file
@@ -0,0 +1,287 @@
|
||||
#
|
||||
# The Python Imaging Library.
|
||||
# $Id$
|
||||
#
|
||||
# BMP file handler
|
||||
#
|
||||
# Windows (and OS/2) native bitmap storage format.
|
||||
#
|
||||
# history:
|
||||
# 1995-09-01 fl Created
|
||||
# 1996-04-30 fl Added save
|
||||
# 1997-08-27 fl Fixed save of 1-bit images
|
||||
# 1998-03-06 fl Load P images as L where possible
|
||||
# 1998-07-03 fl Load P images as 1 where possible
|
||||
# 1998-12-29 fl Handle small palettes
|
||||
# 2002-12-30 fl Fixed load of 1-bit palette images
|
||||
# 2003-04-21 fl Fixed load of 1-bit monochrome images
|
||||
# 2003-04-23 fl Added limited support for BI_BITFIELDS compression
|
||||
#
|
||||
# Copyright (c) 1997-2003 by Secret Labs AB
|
||||
# Copyright (c) 1995-2003 by Fredrik Lundh
|
||||
#
|
||||
# See the README file for information on usage and redistribution.
|
||||
#
|
||||
|
||||
|
||||
from . import Image, ImageFile, ImagePalette
|
||||
from ._binary import i8, i16le as i16, i32le as i32, \
|
||||
o8, o16le as o16, o32le as o32
|
||||
import math
|
||||
|
||||
__version__ = "0.7"
|
||||
|
||||
#
|
||||
# --------------------------------------------------------------------
|
||||
# Read BMP file
|
||||
|
||||
BIT2MODE = {
|
||||
# bits => mode, rawmode
|
||||
1: ("P", "P;1"),
|
||||
4: ("P", "P;4"),
|
||||
8: ("P", "P"),
|
||||
16: ("RGB", "BGR;15"),
|
||||
24: ("RGB", "BGR"),
|
||||
32: ("RGB", "BGRX"),
|
||||
}
|
||||
|
||||
|
||||
def _accept(prefix):
|
||||
return prefix[:2] == b"BM"
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# Image plugin for the Windows BMP format.
|
||||
# ==============================================================================
|
||||
class BmpImageFile(ImageFile.ImageFile):
|
||||
""" Image plugin for the Windows Bitmap format (BMP) """
|
||||
|
||||
# -------------------------------------------------------------- Description
|
||||
format_description = "Windows Bitmap"
|
||||
format = "BMP"
|
||||
# --------------------------------------------------- BMP Compression values
|
||||
COMPRESSIONS = {'RAW': 0, 'RLE8': 1, 'RLE4': 2, 'BITFIELDS': 3, 'JPEG': 4, 'PNG': 5}
|
||||
RAW, RLE8, RLE4, BITFIELDS, JPEG, PNG = 0, 1, 2, 3, 4, 5
|
||||
|
||||
def _bitmap(self, header=0, offset=0):
|
||||
""" Read relevant info about the BMP """
|
||||
read, seek = self.fp.read, self.fp.seek
|
||||
if header:
|
||||
seek(header)
|
||||
file_info = {}
|
||||
file_info['header_size'] = i32(read(4)) # read bmp header size @offset 14 (this is part of the header size)
|
||||
file_info['direction'] = -1
|
||||
# --------------------- If requested, read header at a specific position
|
||||
header_data = ImageFile._safe_read(self.fp, file_info['header_size'] - 4) # read the rest of the bmp header, without its size
|
||||
# --------------------------------------------------- IBM OS/2 Bitmap v1
|
||||
# ------ This format has different offsets because of width/height types
|
||||
if file_info['header_size'] == 12:
|
||||
file_info['width'] = i16(header_data[0:2])
|
||||
file_info['height'] = i16(header_data[2:4])
|
||||
file_info['planes'] = i16(header_data[4:6])
|
||||
file_info['bits'] = i16(header_data[6:8])
|
||||
file_info['compression'] = self.RAW
|
||||
file_info['palette_padding'] = 3
|
||||
# ---------------------------------------------- Windows Bitmap v2 to v5
|
||||
elif file_info['header_size'] in (40, 64, 108, 124): # v3, OS/2 v2, v4, v5
|
||||
if file_info['header_size'] >= 40: # v3 and OS/2
|
||||
file_info['y_flip'] = i8(header_data[7]) == 0xff
|
||||
file_info['direction'] = 1 if file_info['y_flip'] else -1
|
||||
file_info['width'] = i32(header_data[0:4])
|
||||
file_info['height'] = i32(header_data[4:8]) if not file_info['y_flip'] else 2**32 - i32(header_data[4:8])
|
||||
file_info['planes'] = i16(header_data[8:10])
|
||||
file_info['bits'] = i16(header_data[10:12])
|
||||
file_info['compression'] = i32(header_data[12:16])
|
||||
file_info['data_size'] = i32(header_data[16:20]) # byte size of pixel data
|
||||
file_info['pixels_per_meter'] = (i32(header_data[20:24]), i32(header_data[24:28]))
|
||||
file_info['colors'] = i32(header_data[28:32])
|
||||
file_info['palette_padding'] = 4
|
||||
self.info["dpi"] = tuple(
|
||||
map(lambda x: int(math.ceil(x / 39.3701)),
|
||||
file_info['pixels_per_meter']))
|
||||
if file_info['compression'] == self.BITFIELDS:
|
||||
if len(header_data) >= 52:
|
||||
for idx, mask in enumerate(['r_mask', 'g_mask', 'b_mask', 'a_mask']):
|
||||
file_info[mask] = i32(header_data[36+idx*4:40+idx*4])
|
||||
else:
|
||||
# 40 byte headers only have the three components in the bitfields masks,
|
||||
# ref: https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx
|
||||
# See also https://github.com/python-pillow/Pillow/issues/1293
|
||||
# There is a 4th component in the RGBQuad, in the alpha location, but it
|
||||
# is listed as a reserved component, and it is not generally an alpha channel
|
||||
file_info['a_mask'] = 0x0
|
||||
for mask in ['r_mask', 'g_mask', 'b_mask']:
|
||||
file_info[mask] = i32(read(4))
|
||||
file_info['rgb_mask'] = (file_info['r_mask'], file_info['g_mask'], file_info['b_mask'])
|
||||
file_info['rgba_mask'] = (file_info['r_mask'], file_info['g_mask'], file_info['b_mask'], file_info['a_mask'])
|
||||
else:
|
||||
raise IOError("Unsupported BMP header type (%d)" % file_info['header_size'])
|
||||
# ------------------ Special case : header is reported 40, which
|
||||
# ---------------------- is shorter than real size for bpp >= 16
|
||||
self.size = file_info['width'], file_info['height']
|
||||
# -------- If color count was not found in the header, compute from bits
|
||||
file_info['colors'] = file_info['colors'] if file_info.get('colors', 0) else (1 << file_info['bits'])
|
||||
# -------------------------------- Check abnormal values for DOS attacks
|
||||
if file_info['width'] * file_info['height'] > 2**31:
|
||||
raise IOError("Unsupported BMP Size: (%dx%d)" % self.size)
|
||||
# ----------------------- Check bit depth for unusual unsupported values
|
||||
self.mode, raw_mode = BIT2MODE.get(file_info['bits'], (None, None))
|
||||
if self.mode is None:
|
||||
raise IOError("Unsupported BMP pixel depth (%d)" % file_info['bits'])
|
||||
# ----------------- Process BMP with Bitfields compression (not palette)
|
||||
if file_info['compression'] == self.BITFIELDS:
|
||||
SUPPORTED = {
|
||||
32: [(0xff0000, 0xff00, 0xff, 0x0), (0xff0000, 0xff00, 0xff, 0xff000000), (0x0, 0x0, 0x0, 0x0), (0xff000000, 0xff0000, 0xff00, 0x0)],
|
||||
24: [(0xff0000, 0xff00, 0xff)],
|
||||
16: [(0xf800, 0x7e0, 0x1f), (0x7c00, 0x3e0, 0x1f)]
|
||||
}
|
||||
MASK_MODES = {
|
||||
(32, (0xff0000, 0xff00, 0xff, 0x0)): "BGRX",
|
||||
(32, (0xff000000, 0xff0000, 0xff00, 0x0)): "XBGR",
|
||||
(32, (0xff0000, 0xff00, 0xff, 0xff000000)): "BGRA",
|
||||
(32, (0x0, 0x0, 0x0, 0x0)): "BGRA",
|
||||
(24, (0xff0000, 0xff00, 0xff)): "BGR",
|
||||
(16, (0xf800, 0x7e0, 0x1f)): "BGR;16",
|
||||
(16, (0x7c00, 0x3e0, 0x1f)): "BGR;15"
|
||||
}
|
||||
if file_info['bits'] in SUPPORTED:
|
||||
if file_info['bits'] == 32 and file_info['rgba_mask'] in SUPPORTED[file_info['bits']]:
|
||||
raw_mode = MASK_MODES[(file_info['bits'], file_info['rgba_mask'])]
|
||||
self.mode = "RGBA" if raw_mode in ("BGRA",) else self.mode
|
||||
elif file_info['bits'] in (24, 16) and file_info['rgb_mask'] in SUPPORTED[file_info['bits']]:
|
||||
raw_mode = MASK_MODES[(file_info['bits'], file_info['rgb_mask'])]
|
||||
else:
|
||||
raise IOError("Unsupported BMP bitfields layout")
|
||||
else:
|
||||
raise IOError("Unsupported BMP bitfields layout")
|
||||
elif file_info['compression'] == self.RAW:
|
||||
if file_info['bits'] == 32 and header == 22: # 32-bit .cur offset
|
||||
raw_mode, self.mode = "BGRA", "RGBA"
|
||||
else:
|
||||
raise IOError("Unsupported BMP compression (%d)" % file_info['compression'])
|
||||
# ---------------- Once the header is processed, process the palette/LUT
|
||||
if self.mode == "P": # Paletted for 1, 4 and 8 bit images
|
||||
# ----------------------------------------------------- 1-bit images
|
||||
if not (0 < file_info['colors'] <= 65536):
|
||||
raise IOError("Unsupported BMP Palette size (%d)" % file_info['colors'])
|
||||
else:
|
||||
padding = file_info['palette_padding']
|
||||
palette = read(padding * file_info['colors'])
|
||||
greyscale = True
|
||||
indices = (0, 255) if file_info['colors'] == 2 else list(range(file_info['colors']))
|
||||
# ------------------ Check if greyscale and ignore palette if so
|
||||
for ind, val in enumerate(indices):
|
||||
rgb = palette[ind*padding:ind*padding + 3]
|
||||
if rgb != o8(val) * 3:
|
||||
greyscale = False
|
||||
# -------- If all colors are grey, white or black, ditch palette
|
||||
if greyscale:
|
||||
self.mode = "1" if file_info['colors'] == 2 else "L"
|
||||
raw_mode = self.mode
|
||||
else:
|
||||
self.mode = "P"
|
||||
self.palette = ImagePalette.raw("BGRX" if padding == 4 else "BGR", palette)
|
||||
|
||||
# ----------------------------- Finally set the tile data for the plugin
|
||||
self.info['compression'] = file_info['compression']
|
||||
self.tile = [('raw', (0, 0, file_info['width'], file_info['height']), offset or self.fp.tell(),
|
||||
(raw_mode, ((file_info['width'] * file_info['bits'] + 31) >> 3) & (~3), file_info['direction'])
|
||||
)]
|
||||
|
||||
def _open(self):
|
||||
""" Open file, check magic number and read header """
|
||||
# read 14 bytes: magic number, filesize, reserved, header final offset
|
||||
head_data = self.fp.read(14)
|
||||
# choke if the file does not have the required magic bytes
|
||||
if head_data[0:2] != b"BM":
|
||||
raise SyntaxError("Not a BMP file")
|
||||
# read the start position of the BMP image data (u32)
|
||||
offset = i32(head_data[10:14])
|
||||
# load bitmap information (offset=raster info)
|
||||
self._bitmap(offset=offset)
|
||||
|
||||
|
||||
# ==============================================================================
|
||||
# Image plugin for the DIB format (BMP alias)
|
||||
# ==============================================================================
|
||||
class DibImageFile(BmpImageFile):
|
||||
|
||||
format = "DIB"
|
||||
format_description = "Windows Bitmap"
|
||||
|
||||
def _open(self):
|
||||
self._bitmap()
|
||||
|
||||
#
|
||||
# --------------------------------------------------------------------
|
||||
# Write BMP file
|
||||
|
||||
SAVE = {
|
||||
"1": ("1", 1, 2),
|
||||
"L": ("L", 8, 256),
|
||||
"P": ("P", 8, 256),
|
||||
"RGB": ("BGR", 24, 0),
|
||||
"RGBA": ("BGRA", 32, 0),
|
||||
}
|
||||
|
||||
|
||||
def _save(im, fp, filename):
|
||||
try:
|
||||
rawmode, bits, colors = SAVE[im.mode]
|
||||
except KeyError:
|
||||
raise IOError("cannot write mode %s as BMP" % im.mode)
|
||||
|
||||
info = im.encoderinfo
|
||||
|
||||
dpi = info.get("dpi", (96, 96))
|
||||
|
||||
# 1 meter == 39.3701 inches
|
||||
ppm = tuple(map(lambda x: int(x * 39.3701), dpi))
|
||||
|
||||
stride = ((im.size[0]*bits+7)//8+3) & (~3)
|
||||
header = 40 # or 64 for OS/2 version 2
|
||||
offset = 14 + header + colors * 4
|
||||
image = stride * im.size[1]
|
||||
|
||||
# bitmap header
|
||||
fp.write(b"BM" + # file type (magic)
|
||||
o32(offset+image) + # file size
|
||||
o32(0) + # reserved
|
||||
o32(offset)) # image data offset
|
||||
|
||||
# bitmap info header
|
||||
fp.write(o32(header) + # info header size
|
||||
o32(im.size[0]) + # width
|
||||
o32(im.size[1]) + # height
|
||||
o16(1) + # planes
|
||||
o16(bits) + # depth
|
||||
o32(0) + # compression (0=uncompressed)
|
||||
o32(image) + # size of bitmap
|
||||
o32(ppm[0]) + o32(ppm[1]) + # resolution
|
||||
o32(colors) + # colors used
|
||||
o32(colors)) # colors important
|
||||
|
||||
fp.write(b"\0" * (header - 40)) # padding (for OS/2 format)
|
||||
|
||||
if im.mode == "1":
|
||||
for i in (0, 255):
|
||||
fp.write(o8(i) * 4)
|
||||
elif im.mode == "L":
|
||||
for i in range(256):
|
||||
fp.write(o8(i) * 4)
|
||||
elif im.mode == "P":
|
||||
fp.write(im.im.getpalette("RGB", "BGRX"))
|
||||
|
||||
ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0,
|
||||
(rawmode, stride, -1))])
|
||||
|
||||
#
|
||||
# --------------------------------------------------------------------
|
||||
# Registry
|
||||
|
||||
Image.register_open(BmpImageFile.format, BmpImageFile, _accept)
|
||||
Image.register_save(BmpImageFile.format, _save)
|
||||
|
||||
Image.register_extension(BmpImageFile.format, ".bmp")
|
||||
|
||||
Image.register_mime(BmpImageFile.format, "image/bmp")
|
||||
@@ -0,0 +1,72 @@
|
||||
#
|
||||
# The Python Imaging Library
|
||||
# $Id$
|
||||
#
|
||||
# BUFR stub adapter
|
||||
#
|
||||
# Copyright (c) 1996-2003 by Fredrik Lundh
|
||||
#
|
||||
# See the README file for information on usage and redistribution.
|
||||
#
|
||||
|
||||
from . import Image, ImageFile
|
||||
|
||||
_handler = None
|
||||
|
||||
|
||||
def register_handler(handler):
|
||||
"""
|
||||
Install application-specific BUFR image handler.
|
||||
|
||||
:param handler: Handler object.
|
||||
"""
|
||||
global _handler
|
||||
_handler = handler
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Image adapter
|
||||
|
||||
def _accept(prefix):
|
||||
return prefix[:4] == b"BUFR" or prefix[:4] == b"ZCZC"
|
||||
|
||||
|
||||
class BufrStubImageFile(ImageFile.StubImageFile):
|
||||
|
||||
format = "BUFR"
|
||||
format_description = "BUFR"
|
||||
|
||||
def _open(self):
|
||||
|
||||
offset = self.fp.tell()
|
||||
|
||||
if not _accept(self.fp.read(4)):
|
||||
raise SyntaxError("Not a BUFR file")
|
||||
|
||||
self.fp.seek(offset)
|
||||
|
||||
# make something up
|
||||
self.mode = "F"
|
||||
self.size = 1, 1
|
||||
|
||||
loader = self._load()
|
||||
if loader:
|
||||
loader.open(self)
|
||||
|
||||
def _load(self):
|
||||
return _handler
|
||||
|
||||
|
||||
def _save(im, fp, filename):
|
||||
if _handler is None or not hasattr("_handler", "save"):
|
||||
raise IOError("BUFR save handler not installed")
|
||||
_handler.save(im, fp, filename)
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Registry
|
||||
|
||||
Image.register_open(BufrStubImageFile.format, BufrStubImageFile, _accept)
|
||||
Image.register_save(BufrStubImageFile.format, _save)
|
||||
|
||||
Image.register_extension(BufrStubImageFile.format, ".bufr")
|
||||
116
ascii2img/ENV/lib/python3.6/site-packages/PIL/ContainerIO.py
Normal file
116
ascii2img/ENV/lib/python3.6/site-packages/PIL/ContainerIO.py
Normal file
@@ -0,0 +1,116 @@
|
||||
#
|
||||
# The Python Imaging Library.
|
||||
# $Id$
|
||||
#
|
||||
# a class to read from a container file
|
||||
#
|
||||
# History:
|
||||
# 1995-06-18 fl Created
|
||||
# 1995-09-07 fl Added readline(), readlines()
|
||||
#
|
||||
# Copyright (c) 1997-2001 by Secret Labs AB
|
||||
# Copyright (c) 1995 by Fredrik Lundh
|
||||
#
|
||||
# See the README file for information on usage and redistribution.
|
||||
#
|
||||
|
||||
##
|
||||
# A file object that provides read access to a part of an existing
|
||||
# file (for example a TAR file).
|
||||
|
||||
|
||||
class ContainerIO(object):
|
||||
|
||||
def __init__(self, file, offset, length):
|
||||
"""
|
||||
Create file object.
|
||||
|
||||
:param file: Existing file.
|
||||
:param offset: Start of region, in bytes.
|
||||
:param length: Size of region, in bytes.
|
||||
"""
|
||||
self.fh = file
|
||||
self.pos = 0
|
||||
self.offset = offset
|
||||
self.length = length
|
||||
self.fh.seek(offset)
|
||||
|
||||
##
|
||||
# Always false.
|
||||
|
||||
def isatty(self):
|
||||
return 0
|
||||
|
||||
def seek(self, offset, mode=0):
|
||||
"""
|
||||
Move file pointer.
|
||||
|
||||
:param offset: Offset in bytes.
|
||||
:param mode: Starting position. Use 0 for beginning of region, 1
|
||||
for current offset, and 2 for end of region. You cannot move
|
||||
the pointer outside the defined region.
|
||||
"""
|
||||
if mode == 1:
|
||||
self.pos = self.pos + offset
|
||||
elif mode == 2:
|
||||
self.pos = self.length + offset
|
||||
else:
|
||||
self.pos = offset
|
||||
# clamp
|
||||
self.pos = max(0, min(self.pos, self.length))
|
||||
self.fh.seek(self.offset + self.pos)
|
||||
|
||||
def tell(self):
|
||||
"""
|
||||
Get current file pointer.
|
||||
|
||||
:returns: Offset from start of region, in bytes.
|
||||
"""
|
||||
return self.pos
|
||||
|
||||
def read(self, n=0):
|
||||
"""
|
||||
Read data.
|
||||
|
||||
:param n: Number of bytes to read. If omitted or zero,
|
||||
read until end of region.
|
||||
:returns: An 8-bit string.
|
||||
"""
|
||||
if n:
|
||||
n = min(n, self.length - self.pos)
|
||||
else:
|
||||
n = self.length - self.pos
|
||||
if not n: # EOF
|
||||
return ""
|
||||
self.pos = self.pos + n
|
||||
return self.fh.read(n)
|
||||
|
||||
def readline(self):
|
||||
"""
|
||||
Read a line of text.
|
||||
|
||||
:returns: An 8-bit string.
|
||||
"""
|
||||
s = ""
|
||||
while True:
|
||||
c = self.read(1)
|
||||
if not c:
|
||||
break
|
||||
s = s + c
|
||||
if c == "\n":
|
||||
break
|
||||
return s
|
||||
|
||||
def readlines(self):
|
||||
"""
|
||||
Read multiple lines of text.
|
||||
|
||||
:returns: A list of 8-bit strings.
|
||||
"""
|
||||
l = []
|
||||
while True:
|
||||
s = self.readline()
|
||||
if not s:
|
||||
break
|
||||
l.append(s)
|
||||
return l
|
||||
@@ -0,0 +1,86 @@
|
||||
#
|
||||
# The Python Imaging Library.
|
||||
# $Id$
|
||||
#
|
||||
# Windows Cursor support for PIL
|
||||
#
|
||||
# notes:
|
||||
# uses BmpImagePlugin.py to read the bitmap data.
|
||||
#
|
||||
# history:
|
||||
# 96-05-27 fl Created
|
||||
#
|
||||
# Copyright (c) Secret Labs AB 1997.
|
||||
# Copyright (c) Fredrik Lundh 1996.
|
||||
#
|
||||
# See the README file for information on usage and redistribution.
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
from . import Image, BmpImagePlugin
|
||||
from ._binary import i8, i16le as i16, i32le as i32
|
||||
|
||||
__version__ = "0.1"
|
||||
|
||||
#
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
|
||||
def _accept(prefix):
|
||||
return prefix[:4] == b"\0\0\2\0"
|
||||
|
||||
|
||||
##
|
||||
# Image plugin for Windows Cursor files.
|
||||
|
||||
class CurImageFile(BmpImagePlugin.BmpImageFile):
|
||||
|
||||
format = "CUR"
|
||||
format_description = "Windows Cursor"
|
||||
|
||||
def _open(self):
|
||||
|
||||
offset = self.fp.tell()
|
||||
|
||||
# check magic
|
||||
s = self.fp.read(6)
|
||||
if not _accept(s):
|
||||
raise SyntaxError("not a CUR file")
|
||||
|
||||
# pick the largest cursor in the file
|
||||
m = b""
|
||||
for i in range(i16(s[4:])):
|
||||
s = self.fp.read(16)
|
||||
if not m:
|
||||
m = s
|
||||
elif i8(s[0]) > i8(m[0]) and i8(s[1]) > i8(m[1]):
|
||||
m = s
|
||||
# print("width", i8(s[0]))
|
||||
# print("height", i8(s[1]))
|
||||
# print("colors", i8(s[2]))
|
||||
# print("reserved", i8(s[3]))
|
||||
# print("hotspot x", i16(s[4:]))
|
||||
# print("hotspot y", i16(s[6:]))
|
||||
# print("bytes", i32(s[8:]))
|
||||
# print("offset", i32(s[12:]))
|
||||
if not m:
|
||||
raise TypeError("No cursors were found")
|
||||
|
||||
# load as bitmap
|
||||
self._bitmap(i32(m[12:]) + offset)
|
||||
|
||||
# patch up the bitmap height
|
||||
self.size = self.size[0], self.size[1]//2
|
||||
d, e, o, a = self.tile[0]
|
||||
self.tile[0] = d, (0, 0)+self.size, o, a
|
||||
|
||||
return
|
||||
|
||||
|
||||
#
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
Image.register_open(CurImageFile.format, CurImageFile, _accept)
|
||||
|
||||
Image.register_extension(CurImageFile.format, ".cur")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user