buildframework/helium/external/python/lib/2.5/Sphinx-0.5.1-py2.5.egg/sphinx/util/png.py
changeset 179 d8ac696cc51f
parent 1 be27ed110b50
child 180 e02a83d4c571
child 592 3215c239276a
--- a/buildframework/helium/external/python/lib/2.5/Sphinx-0.5.1-py2.5.egg/sphinx/util/png.py	Wed Oct 28 14:39:48 2009 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    sphinx.util.png
-    ~~~~~~~~~~~~~~~
-
-    PNG image manipulation helpers.
-
-    :copyright: 2008 by Georg Brandl.
-    :license: BSD.
-"""
-
-import struct
-import binascii
-
-LEN_IEND = 12
-LEN_DEPTH = 22
-
-DEPTH_CHUNK_LEN = struct.pack('!i', 10)
-DEPTH_CHUNK_START = 'tEXtDepth\x00'
-IEND_CHUNK = '\x00\x00\x00\x00IEND\xAE\x42\x60\x82'
-
-
-def read_png_depth(filename):
-    """
-    Read the special tEXt chunk indicating the depth from a PNG file.
-    """
-    result = None
-    f = open(filename, 'rb')
-    try:
-        f.seek(- (LEN_IEND + LEN_DEPTH), 2)
-        depthchunk = f.read(LEN_DEPTH)
-        if not depthchunk.startswith(DEPTH_CHUNK_LEN + DEPTH_CHUNK_START):
-            # either not a PNG file or not containing the depth chunk
-            return None
-        result = struct.unpack('!i', depthchunk[14:18])[0]
-    finally:
-        f.close()
-    return result
-
-
-def write_png_depth(filename, depth):
-    """
-    Write the special tEXt chunk indicating the depth to a PNG file.
-    The chunk is placed immediately before the special IEND chunk.
-    """
-    data = struct.pack('!i', depth)
-    f = open(filename, 'r+b')
-    try:
-        # seek to the beginning of the IEND chunk
-        f.seek(-LEN_IEND, 2)
-        # overwrite it with the depth chunk
-        f.write(DEPTH_CHUNK_LEN + DEPTH_CHUNK_START + data)
-        # calculate the checksum over chunk name and data
-        f.write(struct.pack('!i', binascii.crc32(DEPTH_CHUNK_START + data)))
-        # replace the IEND chunk
-        f.write(IEND_CHUNK)
-    finally:
-        f.close()