当前位置: 首页>>代码示例>>Python>>正文


Python Image.draw方法代码示例

本文整理汇总了Python中pgmagick.Image.draw方法的典型用法代码示例。如果您正苦于以下问题:Python Image.draw方法的具体用法?Python Image.draw怎么用?Python Image.draw使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pgmagick.Image的用法示例。


在下文中一共展示了Image.draw方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: dummy_image

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
 def dummy_image(self, width, height):
     im = Image(Geometry(width, height), Color(240, 240, 240))
     im.strokeColor(Color(128, 128, 128))
     im.strokeWidth(1)
     im.draw(DrawableLine(0, 0, width, height))
     im.draw(DrawableLine(0, height, width, 0))
     return im
开发者ID:hvdklauw,项目名称:sorl-thumbnail,代码行数:9,代码来源:pgmagick_engine.py

示例2: dummy_image

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
 def dummy_image(self, width, height):
     d = self._get_dummy_image_data(width, height)
     im = Image(Geometry(width, height), Color(*d['canvas_color']))
     im.strokeColor(Color(*d['line_color']))
     im.strokeWidth(1)
     for line in d['lines']:
         im.draw(DrawableLine(*line))
     im.fillColor(Color())
     im.draw(DrawableRectangle(*d['rectangle']))
     return im
开发者ID:avostryakov,项目名称:sorl-thumbnail,代码行数:12,代码来源:pgmagick_engine.py

示例3: Image

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
#make a world-generator, bitmap based.

from pgmagick import Image, DrawableCircle, DrawableText, Geometry, Color

im = Image(Geometry(300, 300), Color("yellow"))

circle = DrawableCircle(100, 100, 20, 20)
im.draw(circle)

im.fontPointsize(65)
text = DrawableText(30, 250, "Hello pgmagick")
im.draw(text)

im.write('test.png')
开发者ID:szczurex,项目名称:spacegame,代码行数:16,代码来源:__init__.py

示例4: edgeTest

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
	def edgeTest(self):

		#first build the image, we need to know how big it is
		with open(self.dataBase + "base.json", "r") as f:
			base = json.loads(f.read())
		
		self.totalWidth = base['width']
		self.totalHeight = base['height']



		print ("Creating large base image", int(self.totalWidth), 'x',int(self.totalHeight) )
		#im = Image(Geometry(int(self.totalWidth), int(self.totalHeight)), Color("black"))
		im = Image(Geometry(5000, 5000), Color("black"))

		allNodes = {}

		for file in os.listdir(self.dataNodes):

			if file.endswith('.json'):

				with open(self.dataNodes + file, "r") as f:

					nodes = json.loads(f.read())
					print ("Storing Nodes data", self.dataNodes + file, len(nodes))
					self.buildCounterNodeTotal = len(nodes)
					self.buildCounterNode = 0

					for node in nodes:
						allNodes[node['id']] = node


		totalEdges = 0
		for file in os.listdir(self.dataEdges):	

			if file.endswith('.json'):

				with open(self.dataEdges + file, "r") as f:

					edges = json.loads(f.read())
					print ("Building Image Edges", self.dataEdges + file, len(edges))
					self.buildCounterNodeTotal = len(edges)
					self.buildCounterNode = 0

					drawlist = DrawableList()

					for edge in edges:

						sourcePos = allNodes[edge['source']]['posX'], allNodes[edge['source']]['posY']
						targetPos = allNodes[edge['target']]['posX'], allNodes[edge['target']]['posY']


						width = abs(sourcePos[0]-targetPos[0])
						height = abs(sourcePos[1]-targetPos[1])

						

						dx = targetPos[0] - sourcePos[0]
						dy = targetPos[1] - sourcePos[1] 

						dxdy = (dx*dx) + (dy*dy)

						dist = math.sqrt( dxdy )

						dxdy = (dx*dx) + (dy*dy)

						dist = math.sqrt( dxdy )

						#midpoint
						mx = (targetPos[0] + sourcePos[0]) / 2
						my = (targetPos[1] + sourcePos[1]) / 2


					

						#print width, height, dist
						totalEdges+=1

				 		color = (allNodes[edge['source']]['rgb'][0],allNodes[edge['source']]['rgb'][1],allNodes[edge['source']]['rgb'][2])

						color = self.rgb_to_hex( color )



						
						drawlist.append(DrawableStrokeColor(color))
						drawlist.append(DrawableStrokeOpacity(0.25))
						drawlist.append(DrawableLine(0,height,width,0))


						#line = Image(Geometry(int(width), int(height)), Color("black"))
						#line.strokeColor("blue");

						#line.draw(drawlist)


						cords = self.convertCoordinates(int(mx),int(my))

						print str(totalEdges),  "                   \r",
						sys.stdout.flush()
#.........这里部分代码省略.........
开发者ID:thisismattmiller,项目名称:catalog-network,代码行数:103,代码来源:process.py

示例5: buildNodeImage

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
	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')
开发者ID:thisismattmiller,项目名称:catalog-network,代码行数:95,代码来源:process.py

示例6: render

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
    def render(self, path, scale=5, width=10000, min_size=10, max_size=200,
               min_fsize=14, max_fsize=200, bg_color='#003059'):

        """
        Render a PNG from the node coordinates.

        Args:
            path (str): The image path.
            scale (float): Pixels per coordinate unit.
            width (int): The height/width, in pixels.
            min_size (int): The min node size.
            max_size (int): The max node size.
            min_fsize (int): The min font size.
            max_fsize (int): The max font size.
        """

        # Initialize the canvas, set font.
        image = Image(Geometry(width, width), Color(bg_color))

        # Set the label font.
        image.font(config['network']['font'])

        for cn, n in bar(self.graph.nodes_iter(data=True),
                         expected_size=len(self.graph)):

            # Get (x,y) / radius.
            x, y = self.get_xy(cn, scale, width)
            r = (n['viz']['size']*scale) / 2

            # Index the coordinates.
            self.graph.node[cn]['x'] = x
            self.graph.node[cn]['y'] = y
            self.graph.node[cn]['r'] = r

            # Get the node label.
            label = ', '.join([
                n.get('title', ''),
                n.get('author', '')
            ])

            # Get the node color.
            color = '#%02x%02x%02x' % (
                n['viz']['color']['r'],
                n['viz']['color']['g'],
                n['viz']['color']['b']
            )

            # Draw the node.
            dl = DrawableList()
            dl.append(DrawableFillColor(color))
            dl.append(DrawableStrokeColor('black'))
            dl.append(DrawableStrokeWidth(n['r']/15))
            dl.append(DrawableFillOpacity(0.9))
            dl.append(DrawableCircle(x, y, x+r, y+r))
            image.draw(dl)

            # Compute the font size.
            ratio = (n['viz']['size']-min_size) / (max_size-min_size)
            fsize = min_fsize + (ratio*(max_fsize-min_fsize))
            image.fontPointsize(fsize)

            # Measure the width of the label.
            tm = TypeMetric()
            image.fontTypeMetrics(label, tm)
            tw = tm.textWidth()

            # Draw the label.
            dl = DrawableList()
            dl.append(DrawablePointSize(fsize))
            dl.append(DrawableFillColor('white'))
            dl.append(DrawableText(x-(tw/2), y, label))
            image.draw(dl)

        image.write(os.path.abspath(path))
开发者ID:overview,项目名称:osp,代码行数:76,代码来源:network.py

示例7: Image

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
from pgmagick import Image, Geometry, Color, \
                     DrawableAffine, DrawableCircle, DrawableCompositeImage, \
                     DrawableText, DrawableList

im = Image(Geometry(300, 300), Color("yellow"))
circle = DrawableCircle(100.0, 100.0, 20.0, 20.0)
im.fontPointsize(65)
im.font("/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/UnBatang.ttf")
text = DrawableText(30, 250, "hello gm")
drawlist = DrawableList()
drawlist.append(circle)
drawlist.append(text)
im.draw(drawlist)
im.write('non-affine.png')

im = Image(Geometry(300, 300), Color("yellow"))
circle = DrawableCircle(100.0, 100.0, 20.0, 20.0)
im.fontPointsize(65)
im.font("/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/UnBatang.ttf")
text = DrawableText(30, 250, "hello gm")
drawlist = DrawableList()
drawlist.append(DrawableAffine(0.9, 0.9, 0.1, 0.1, 0.5, 0.5))
drawlist.append(circle)
drawlist.append(text)
im.draw(drawlist)
im.write('affine.png')


im = Image(Geometry(300, 300), Color("yellow"))
d = DrawableCompositeImage(100, 150, im)
im.draw(d)
开发者ID:hhatto,项目名称:pgmagick,代码行数:33,代码来源:drawablelist.py

示例8: Image

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
from pgmagick import Image, Geometry, Color, Coordinate, CoordinateList, \
                     DrawableBezier

im = Image(Geometry(300, 200), Color("white"))
cdl = CoordinateList()
cdl.append(Coordinate(20, 20))
cdl.append(Coordinate(100, 50))
cdl.append(Coordinate(50, 100))
cdl.append(Coordinate(160, 160))
db = DrawableBezier(cdl)
im.draw(db)
im.display()
开发者ID:hhatto,项目名称:pgmagick,代码行数:14,代码来源:bezier.py

示例9: TypeMetric

# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import draw [as 别名]
tm = TypeMetric()
im.fontTypeMetrics("northn", tm)
font_height = tm.textHeight()
dl.append(DrawableGravity(GravityType.NorthGravity))
dl.append(DrawableText(0, font_height / 2., "north"))

dl.append(DrawableGravity(GravityType.WestGravity))
dl.append(DrawableText(0, 0, "west"))

dl.append(DrawableGravity(GravityType.EastGravity))
dl.append(DrawableText(0, 0, "east"))
dl.append(DrawableText(0, 20, "east-long"))

dl.append(DrawableGravity(GravityType.SouthGravity))
dl.append(DrawableText(0, 0, "south"))

dl.append(DrawableGravity(GravityType.NorthWestGravity))
dl.append(DrawableText(0, font_height / 2., "north-west"))

dl.append(DrawableGravity(GravityType.NorthEastGravity))
dl.append(DrawableText(0, font_height / 2., "north-east"))

dl.append(DrawableGravity(GravityType.SouthWestGravity))
dl.append(DrawableText(0, 0, "south-west"))

dl.append(DrawableGravity(GravityType.SouthEastGravity))
dl.append(DrawableText(0, 0, "south-east"))

im.draw(dl)
im.write("test.png")
开发者ID:hhatto,项目名称:pgmagick,代码行数:32,代码来源:gravity.py


注:本文中的pgmagick.Image.draw方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。