summaryrefslogtreecommitdiffstats
path: root/lib/Python/Lib/PIL/GdImageFile.py
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-05-12 14:07:48 +0200
committerGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-05-12 14:07:48 +0200
commit5d86cfd98437eaa2b84b07ba19d51d50d64bc53f (patch)
tree735c4b2445a274be1440b75c7733d2805ff24307 /lib/Python/Lib/PIL/GdImageFile.py
parentOther import fixes (2) (diff)
downloadpyload-5d86cfd98437eaa2b84b07ba19d51d50d64bc53f.tar.xz
Missing optional lib
Diffstat (limited to 'lib/Python/Lib/PIL/GdImageFile.py')
-rw-r--r--lib/Python/Lib/PIL/GdImageFile.py92
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/Python/Lib/PIL/GdImageFile.py b/lib/Python/Lib/PIL/GdImageFile.py
new file mode 100644
index 000000000..080153a9f
--- /dev/null
+++ b/lib/Python/Lib/PIL/GdImageFile.py
@@ -0,0 +1,92 @@
+#
+# The Python Imaging Library.
+# $Id$
+#
+# GD file handling
+#
+# History:
+# 1996-04-12 fl Created
+#
+# Copyright (c) 1997 by Secret Labs AB.
+# Copyright (c) 1996 by Fredrik Lundh.
+#
+# See the README file for information on usage and redistribution.
+#
+
+
+# NOTE: This format cannot be automatically recognized, so the
+# class is not registered for use with Image.open(). To open a
+# gd file, use the GdImageFile.open() function instead.
+
+# THE GD FORMAT IS NOT DESIGNED FOR DATA INTERCHANGE. This
+# implementation is provided for convenience and demonstrational
+# purposes only.
+
+
+__version__ = "0.1"
+
+from PIL import ImageFile, ImagePalette, _binary
+from PIL._util import isPath
+
+try:
+ import builtins
+except ImportError:
+ import __builtin__
+ builtins = __builtin__
+
+i16 = _binary.i16be
+
+
+##
+# Image plugin for the GD uncompressed format. Note that this format
+# is not supported by the standard <b>Image.open</b> function. To use
+# this plugin, you have to import the <b>GdImageFile</b> module and
+# use the <b>GdImageFile.open</b> function.
+
+class GdImageFile(ImageFile.ImageFile):
+
+ format = "GD"
+ format_description = "GD uncompressed images"
+
+ def _open(self):
+
+ # Header
+ s = self.fp.read(775)
+
+ self.mode = "L" # FIXME: "P"
+ self.size = i16(s[0:2]), i16(s[2:4])
+
+ # transparency index
+ tindex = i16(s[5:7])
+ if tindex < 256:
+ self.info["transparent"] = tindex
+
+ self.palette = ImagePalette.raw("RGB", s[7:])
+
+ self.tile = [("raw", (0, 0)+self.size, 775, ("L", 0, -1))]
+
+
+##
+# Load texture from a GD image file.
+#
+# @param filename GD file name, or an opened file handle.
+# @param mode Optional mode. In this version, if the mode argument
+# is given, it must be "r".
+# @return An image instance.
+# @exception IOError If the image could not be read.
+
+def open(fp, mode="r"):
+
+ if mode != "r":
+ raise ValueError("bad mode")
+
+ if isPath(fp):
+ filename = fp
+ fp = builtins.open(fp, "rb")
+ else:
+ filename = ""
+
+ try:
+ return GdImageFile(fp, filename)
+ except SyntaxError:
+ raise IOError("cannot identify this image file")