Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/PIL/GdImageFile.py
diff options
context:
space:
mode:
Diffstat (limited to 'PIL/GdImageFile.py')
-rw-r--r--PIL/GdImageFile.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/PIL/GdImageFile.py b/PIL/GdImageFile.py
new file mode 100644
index 0000000..e6ddfa7
--- /dev/null
+++ b/PIL/GdImageFile.py
@@ -0,0 +1,86 @@
+#
+# The Python Imaging Library.
+# $Id: GdImageFile.py 2134 2004-10-06 08:55:20Z fredrik $
+#
+# 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"
+
+import string
+import Image, ImageFile, ImagePalette
+
+def i16(c):
+ return ord(c[1]) + (ord(c[0])<<8)
+
+##
+# 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 type(fp) == type(""):
+ import __builtin__
+ filename = fp
+ fp = __builtin__.open(fp, "rb")
+ else:
+ filename = ""
+
+ try:
+ return GdImageFile(fp, filename)
+ except SyntaxError:
+ raise IOError("cannot identify this image file")