本文整理汇总了Python中pgmagick.Image.fontTypeMetrics方法的典型用法代码示例。如果您正苦于以下问题:Python Image.fontTypeMetrics方法的具体用法?Python Image.fontTypeMetrics怎么用?Python Image.fontTypeMetrics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pgmagick.Image
的用法示例。
在下文中一共展示了Image.fontTypeMetrics方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: render
# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import fontTypeMetrics [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))
示例2: buildNodeImage
# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import fontTypeMetrics [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')
示例3: Image
# 需要导入模块: from pgmagick import Image [as 别名]
# 或者: from pgmagick.Image import fontTypeMetrics [as 别名]
from pgmagick import Image, Geometry, Color, TypeMetric, \
DrawableText, DrawableList, DrawableGravity, GravityType
im = Image(Geometry(600, 600), Color("transparent"))
im.fontPointsize(30)
im.fillColor(Color("#f010f0"))
im.strokeColor(Color("transparent"))
im.font("Vera.ttf")
dl = DrawableList()
dl.append(DrawableGravity(GravityType.CenterGravity))
dl.append(DrawableText(0, 0, "center"))
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))