diff -r be27ed110b50 -r d8ac696cc51f buildframework/helium/external/python/lib/2.5/Sphinx-0.5.1-py2.5.egg/sphinx/util/png.py --- 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()