Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import os
  2. import re
  3. from PIL import Image
  4. import shutil
  5. import random
  6. import time
  7.  
  8. class Palette:
  9.     def __init__(self):
  10.         #print 'image info'
  11.        
  12.         self.palettes = ['Template',
  13.                         'AlienAtmosphere',
  14.                         'BloomBloom',
  15.                         'ColorConvoy',
  16.                         'FloatingFlora',
  17.                         'JamaicanJam',
  18.                         'KillerKit',
  19.                         'LowLongside',
  20.                         'MagicMustache',
  21.                         'NumberNoir',
  22.                         'PrettyPerfect',
  23.                         'RadiantRusture',
  24.                         'RestingRapture',
  25.                         'SilentSalute',
  26.                         'TerribleTome',
  27.                         'LoopingLoopers']
  28.        
  29.         self.paletteColors = {}
  30.        
  31.        
  32.     def generatePaletteInfo(self):
  33.         file = 'C:\\_Files\\extra\\image\\images\\colorss.png' 
  34.         self.im = Image.open(file)
  35.         width = self.im.size[0]
  36.         height = self.im.size[1]
  37.         #print height, width
  38.        
  39.         palheight = height
  40.         palwidth = width /16
  41.         #print palheight, palwidth, 105,121
  42.        
  43.  
  44.         for p in range(0,len(self.palettes)):
  45.             #print p
  46.             thispal = {}
  47.             count = 0
  48.        
  49.             for i in range(p*palwidth, p*palwidth + palwidth):
  50.                 for j in range(height):
  51.                     pco = self.im.getpixel((i,j))
  52.                     if (self.palettes[p]=='Template'):
  53.                         print i,j,pco
  54.                    
  55.                     try:
  56.                         count = thispal[pco]
  57.                         count += 1
  58.                     except:
  59.                         count = 0
  60.                     thispal[pco] = count
  61.             #print thispal
  62.             if (self.palettes[p]=='Template'):
  63.                 print thispal
  64.                        
  65.             self.paletteColors[self.palettes[p]] = thispal
  66.         #print self.paletteColors
  67.                
  68.     def swap(self, fromPal='', mult=1, offset=0, sort=True, shuffleRGB=False):
  69.         file = 'C:\\_Files\\extra\\image\\images\\TheOsp.png'  
  70.         self.im = Image.open(file)
  71.         width = self.im.size[0]
  72.         height = self.im.size[1]
  73.         existpal = {}
  74.         exx = []
  75.        
  76.         #make palette
  77.         for i in range(width):
  78.             for j in range(height):
  79.                 co = self.im.getpixel((i,j))   
  80.                 existpal[co] = 1
  81.                
  82.        
  83.         for pp in existpal:
  84.             exx.append(pp)
  85.            
  86.         pal1 = {}
  87.         pal2 = []
  88.         if (sort==True):
  89.             exx.sort(reverse=True)
  90.         count = 0
  91.         #print '-------exx = ', exx
  92.         for jj in exx:
  93.             pal1[jj] = count
  94.             count += 1
  95.        
  96.         count = 0
  97.         for kk in self.paletteColors[fromPal]:
  98.             kk2 = kk
  99.            
  100.             if shuffleRGB:
  101.                 rx = kk[0]
  102.                 gx = kk[1]
  103.                 bx = kk[2]
  104.            
  105.                 kk2 = (gx,bx,rx,255)
  106.  
  107.             pal2.append(kk2)
  108.            
  109.            
  110.            
  111.         if (sort==True):           
  112.             pal2.sort(reverse=True)        
  113.         #print pal1
  114.         #print pal2
  115.         print 'size', len(pal1), len(pal2), fromPal
  116.        
  117.                        
  118.         for i in range(width):
  119.             for j in range(height):
  120.                 co = self.im.getpixel((i,j))   
  121.                 xx = pal1[co]
  122.                
  123.                
  124.                
  125.                 yy = ((1 + xx) * mult) + offset
  126.                
  127.                 if yy >= len(pal2):
  128.                     yy = len(pal2) / 2
  129.                     ##yy = random.randint(1,  len(pal2) -1  )
  130.                
  131.                 newco = pal2[yy]
  132.  
  133.                 self.im.putpixel((i,j) , (newco[0], newco[1], newco[2]))
  134.                
  135.         newFileNameRandom= time.time()
  136.         self.im.save('C:\\_Files\\extra\\image\\output3\\TheOsp' + str(newFileNameRandom)+fromPal+ '.png', "PNG")  
  137.        
  138.        
  139.                        
  140. p = Palette()
  141. p.generatePaletteInfo()
  142.  
  143. for kk in p.palettes:
  144.     if (kk!='Template'):
  145.         for mmult in range(1,8):
  146.             for ooffset in range(1,50):
  147.                 p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=True, shuffleRGB=False)
  148.                 p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=False, shuffleRGB=False)
  149.                 p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=True, shuffleRGB=True)
  150.                 p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=False, shuffleRGB=True)
  151.                
  152. print 'complete!'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement