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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4.  
  5. class Filter:
  6.     pass
  7.  
  8.  
  9. class Kernel(Filter):
  10.     
  11.     def __init__(self, size, kernel, scale = None, offset = 0):
  12.         if scale is None:
  13.             scale = reduce((lambda a, b: a + b), kernel)
  14.         
  15.         if size[0] * size[1] != len(kernel):
  16.             raise ValueError('not enough coefficients in kernel')
  17.         size[0] * size[1] != len(kernel)
  18.         self.filterargs = (size, scale, offset, kernel)
  19.  
  20.     
  21.     def filter(self, image):
  22.         if image.mode == 'P':
  23.             raise ValueError('cannot filter palette images')
  24.         image.mode == 'P'
  25.         return apply(image.filter, self.filterargs)
  26.  
  27.  
  28.  
  29. class BuiltinFilter(Kernel):
  30.     
  31.     def __init__(self):
  32.         pass
  33.  
  34.  
  35.  
  36. class RankFilter(Filter):
  37.     name = 'Rank'
  38.     
  39.     def __init__(self, size, rank):
  40.         self.size = size
  41.         self.rank = rank
  42.  
  43.     
  44.     def filter(self, image):
  45.         image = image.expand(self.size / 2, self.size / 2)
  46.         return image.rankfilter(self.size, self.rank)
  47.  
  48.  
  49.  
  50. class MedianFilter(RankFilter):
  51.     name = 'Median'
  52.     
  53.     def __init__(self, size = 3):
  54.         self.size = size
  55.         self.rank = size * size / 2
  56.  
  57.  
  58.  
  59. class MinFilter(RankFilter):
  60.     name = 'Min'
  61.     
  62.     def __init__(self, size = 3):
  63.         self.size = size
  64.         self.rank = 0
  65.  
  66.  
  67.  
  68. class MaxFilter(RankFilter):
  69.     name = 'Max'
  70.     
  71.     def __init__(self, size = 3):
  72.         self.size = size
  73.         self.rank = size * size - 1
  74.  
  75.  
  76.  
  77. class ModeFilter(Filter):
  78.     name = 'Mode'
  79.     
  80.     def __init__(self, size = 3):
  81.         self.size = size
  82.  
  83.     
  84.     def filter(self, image):
  85.         return image.modefilter(self.size)
  86.  
  87.  
  88.  
  89. class BLUR(BuiltinFilter):
  90.     name = 'Blur'
  91.     filterargs = ((5, 5), 16, 0, (1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1))
  92.  
  93.  
  94. class CONTOUR(BuiltinFilter):
  95.     name = 'Contour'
  96.     filterargs = ((3, 3), 1, 255, (-1, -1, -1, -1, 8, -1, -1, -1, -1))
  97.  
  98.  
  99. class DETAIL(BuiltinFilter):
  100.     name = 'Detail'
  101.     filterargs = ((3, 3), 6, 0, (0, -1, 0, -1, 10, -1, 0, -1, 0))
  102.  
  103.  
  104. class EDGE_ENHANCE(BuiltinFilter):
  105.     name = 'Edge-enhance'
  106.     filterargs = ((3, 3), 2, 0, (-1, -1, -1, -1, 10, -1, -1, -1, -1))
  107.  
  108.  
  109. class EDGE_ENHANCE_MORE(BuiltinFilter):
  110.     name = 'Edge-enhance More'
  111.     filterargs = ((3, 3), 1, 0, (-1, -1, -1, -1, 9, -1, -1, -1, -1))
  112.  
  113.  
  114. class EMBOSS(BuiltinFilter):
  115.     name = 'Emboss'
  116.     filterargs = ((3, 3), 1, 128, (-1, 0, 0, 0, 1, 0, 0, 0, 0))
  117.  
  118.  
  119. class FIND_EDGES(BuiltinFilter):
  120.     name = 'Find Edges'
  121.     filterargs = ((3, 3), 1, 0, (-1, -1, -1, -1, 8, -1, -1, -1, -1))
  122.  
  123.  
  124. class SMOOTH(BuiltinFilter):
  125.     name = 'Smooth'
  126.     filterargs = ((3, 3), 13, 0, (1, 1, 1, 1, 5, 1, 1, 1, 1))
  127.  
  128.  
  129. class SMOOTH_MORE(BuiltinFilter):
  130.     name = 'Smooth More'
  131.     filterargs = ((5, 5), 100, 0, (1, 1, 1, 1, 1, 1, 5, 5, 5, 1, 1, 5, 44, 5, 1, 1, 5, 5, 5, 1, 1, 1, 1, 1, 1))
  132.  
  133.  
  134. class SHARPEN(BuiltinFilter):
  135.     name = 'Sharpen'
  136.     filterargs = ((3, 3), 16, 0, (-2, -2, -2, -2, 32, -2, -2, -2, -2))
  137.  
  138.