home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2193 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.6 KB  |  76 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __version__ = '0.1'
  5. import Image
  6. import ImageFile
  7. import ImagePalette
  8. import string
  9.  
  10. def _tomb(val):
  11.     l = [
  12.         chr(val & 127)]
  13.     val = val >> 7
  14.     while val != 0:
  15.         l.append(chr(val & 127 | 128))
  16.         val = val >> 7
  17.     l.reverse()
  18.     return string.join(l, '')
  19.  
  20.  
  21. def _frommb(s, index = 0):
  22.     (val, cont) = (0, 1)
  23.     while cont:
  24.         ch = ord(s[index])
  25.         index = index + 1
  26.         cont = ch & 128
  27.         val = val << 7 | ch & 127
  28.     return (val, index)
  29.  
  30.  
  31. def _accept(prefix):
  32.     (type, index) = _frommb(prefix)
  33.     header = ord(prefix[index])
  34.     if type != 0 or header != 0:
  35.         return 0
  36.     return 1
  37.  
  38.  
  39. class WbmpImageFile(ImageFile.ImageFile):
  40.     format = 'WBMP'
  41.     format_description = 'Wireless'
  42.     
  43.     def _open(self):
  44.         s = self.fp.read(128)
  45.         if not _accept(s):
  46.             raise SyntaxError('not a WBMP file')
  47.         _accept(s)
  48.         (width, index) = _frommb(s, 2)
  49.         (height, index) = _frommb(s, index)
  50.         self.size = (width, height)
  51.         self.mode = '1'
  52.         self.tile = [
  53.             ('raw', (0, 0) + self.size, index, (self.mode, 0, 1))]
  54.  
  55.  
  56. SAVE = {
  57.     '1': (2, 1, 1, '1') }
  58.  
  59. def _save(im, fp, filename, check = 0):
  60.     
  61.     try:
  62.         (version, bits, planes, rawmode) = SAVE[im.mode]
  63.     except KeyError:
  64.         raise ValueError('Cannot save %s images as WBMP' % im.mode)
  65.  
  66.     if check:
  67.         return check
  68.     (width, height) = im.size
  69.     fp.write(chr(0) + chr(0) + _tomb(width) + _tomb(height))
  70.     ImageFile._save(im, fp, [
  71.         ('raw', (0, 0) + im.size, 0, (rawmode, 0, 1))])
  72.  
  73. Image.register_open('WBMP', WbmpImageFile, _accept)
  74. Image.register_save('WBMP', _save)
  75. Image.register_extension('WBMP', '.wbmp')
  76.