def deferred_pgmagick(): im = PGImage(imagename) im.filterType(FilterTypes.CatromFilter) im.zoom(Geometry(1024, 768)) im.quality(85) im.magick('jpeg') im.write(Blob())
def convertGMtoPIL(gmimage): """ Convert GraphicsMagick image to PIL work with grayscale and colour """ img = Image(gmimage) # make copy gmimage.depth(8) img.magick("RGB") w, h = img.columns(), img.rows() blob = Blob() img.write(blob) data = blob.data # convert string array to an RGB PIL image pilimage = PilImage.fromstring('RGB', (w, h), data) return pilimage
def convertGMtoPIL(gmimage): """ Convert GraphicsMagick image to PIL work with grayscale and colour """ img = Image(gmimage) # make copy gmimage.depth(8) img.magick("RGB") w, h = img.columns(), img.rows() blob = Blob() img.write(blob) data = blob.data # convert string array to an RGB PIL image pilimage = PilImage.fromstring("RGB", (w, h), data) return pilimage
def gera_xyz(imagem): ''' * reduz a imagem a 25% da dimensão em pixels e converte para GIF 64 cores; * gera um arquivo .txt com os dados pixel a pixel, quanto às cores em RGB e xyz ''' print messages.strings['welcome'] print messages.strings['crexyz'] img_base = Blob(open(imagem).read()) img_alvo = Image(img_base) img_alvo.magick('GIF') img_alvo.colorSpace = 'XYZ' img_alvo.scale('25%') img_alvo.quantizeColors(64) img_alvo.quantizeDither(img_alvo.quantize(64)) img_alvo.write('./tmp.txt') with open('./tmp.txt', 'r') as tt: return tt.readlines()
def gera_xyz(imagem): ''' * reduz a imagem a 25% da dimensão em pixels e converte para GIF 64 cores; * gera um arquivo .txt com os dados pixel a pixel, quanto às cores em RGB e xyz ''' print messages.strings['welcome'] print messages.strings['crexyz'] img_base = Blob(open(imagem).read()) img_alvo = Image(img_base) img_alvo.magick('GIF') img_alvo.colorSpace = 'XYZ' img_alvo.scale('25%') img_alvo.quantizeColors(64) img_alvo.quantizeDither(img_alvo.quantize(64)) img_alvo.write('./tmp.txt') with open('./tmp.txt', 'r') as tt: return tt.readlines()
def buildNodeImage(self,node): self.buildCounterNode+=1 node['name'] = node['name'].encode("utf-8") print "{0:.2f}".format(self.buildCounterNode / (self.buildCounterNodeTotal) * 100)," percent complete of this batch \r", scale = self.scaleFactor #if node['size'] > 10: #cale = 4.75 #if node['size'] < 900: # scale = 4 circleHeight = int(float(node['size'])*scale) circleWidth = int(float(node['size'])*scale) canvasHeight = int(circleHeight *2) canvasWidth = int(circleWidth* 2) im = Image(Geometry(10,10), 'transparent') fontsize = self.returnFontSize(canvasHeight) im.fontPointsize(fontsize) tm = TypeMetric() im.fontTypeMetrics(node['name'], tm) if tm.textWidth() > canvasWidth: canvasWidth = int(tm.textWidth()) + 5 im = Image(Geometry(canvasWidth,canvasHeight), 'transparent') im.density("72x72") im.magick('RGB') im.resolutionUnits(ResolutionType.PixelsPerInchResolution) im.strokeAntiAlias(True) color = (node['rgb'][0],node['rgb'][1],node['rgb'][2]) color = self.rgb_to_hex( color ) im.fillColor(color); im.strokeWidth(2); if circleWidth <= 20: im.strokeColor("transparent"); else: im.strokeColor("black"); if circleWidth <= 50: im.strokeWidth(1); circle = DrawableCircle( canvasWidth/2 , canvasHeight/2, (canvasWidth/2) + (circleWidth/2), (canvasHeight/2) + (circleHeight/2)) im.draw(circle) im.fillColor("white"); im.strokeColor("black"); im.strokeWidth(1); fontsize = self.returnFontSize(canvasHeight) im.fontPointsize(fontsize) tm = TypeMetric() im.fontTypeMetrics(node['name'], tm) textWidth = tm.textWidth() textHeight = tm.textHeight() if fontsize <= 30: im.strokeColor("transparent") text = DrawableText((canvasWidth / 2) - (textWidth/2), canvasHeight/2 + 6 , node['name']) im.draw(text) im.write(self.dataCircles + str(node['id']) + '.png')