Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import re
- from PIL import Image
- import shutil
- import random
- import time
- class Palette:
- def __init__(self):
- #print 'image info'
- self.palettes = ['Template',
- 'AlienAtmosphere',
- 'BloomBloom',
- 'ColorConvoy',
- 'FloatingFlora',
- 'JamaicanJam',
- 'KillerKit',
- 'LowLongside',
- 'MagicMustache',
- 'NumberNoir',
- 'PrettyPerfect',
- 'RadiantRusture',
- 'RestingRapture',
- 'SilentSalute',
- 'TerribleTome',
- 'LoopingLoopers']
- self.paletteColors = {}
- def generatePaletteInfo(self):
- file = 'C:\\_Files\\extra\\image\\images\\colorss.png'
- self.im = Image.open(file)
- width = self.im.size[0]
- height = self.im.size[1]
- #print height, width
- palheight = height
- palwidth = width /16
- #print palheight, palwidth, 105,121
- for p in range(0,len(self.palettes)):
- #print p
- thispal = {}
- count = 0
- for i in range(p*palwidth, p*palwidth + palwidth):
- for j in range(height):
- pco = self.im.getpixel((i,j))
- if (self.palettes[p]=='Template'):
- print i,j,pco
- try:
- count = thispal[pco]
- count += 1
- except:
- count = 0
- thispal[pco] = count
- #print thispal
- if (self.palettes[p]=='Template'):
- print thispal
- self.paletteColors[self.palettes[p]] = thispal
- #print self.paletteColors
- def swap(self, fromPal='', mult=1, offset=0, sort=True, shuffleRGB=False):
- file = 'C:\\_Files\\extra\\image\\images\\TheOsp.png'
- self.im = Image.open(file)
- width = self.im.size[0]
- height = self.im.size[1]
- existpal = {}
- exx = []
- #make palette
- for i in range(width):
- for j in range(height):
- co = self.im.getpixel((i,j))
- existpal[co] = 1
- for pp in existpal:
- exx.append(pp)
- pal1 = {}
- pal2 = []
- if (sort==True):
- exx.sort(reverse=True)
- count = 0
- #print '-------exx = ', exx
- for jj in exx:
- pal1[jj] = count
- count += 1
- count = 0
- for kk in self.paletteColors[fromPal]:
- kk2 = kk
- if shuffleRGB:
- rx = kk[0]
- gx = kk[1]
- bx = kk[2]
- kk2 = (gx,bx,rx,255)
- pal2.append(kk2)
- if (sort==True):
- pal2.sort(reverse=True)
- #print pal1
- #print pal2
- print 'size', len(pal1), len(pal2), fromPal
- for i in range(width):
- for j in range(height):
- co = self.im.getpixel((i,j))
- xx = pal1[co]
- yy = ((1 + xx) * mult) + offset
- if yy >= len(pal2):
- yy = len(pal2) / 2
- ##yy = random.randint(1, len(pal2) -1 )
- newco = pal2[yy]
- self.im.putpixel((i,j) , (newco[0], newco[1], newco[2]))
- newFileNameRandom= time.time()
- self.im.save('C:\\_Files\\extra\\image\\output3\\TheOsp' + str(newFileNameRandom)+fromPal+ '.png', "PNG")
- p = Palette()
- p.generatePaletteInfo()
- for kk in p.palettes:
- if (kk!='Template'):
- for mmult in range(1,8):
- for ooffset in range(1,50):
- p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=True, shuffleRGB=False)
- p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=False, shuffleRGB=False)
- p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=True, shuffleRGB=True)
- p.swap(fromPal=kk, mult=mmult, offset=ooffset, sort=False, shuffleRGB=True)
- print 'complete!'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement