2727 REQUIREMENTs
2828
2929 python2.3+
30- numpy 1.0 +
31-
30+ numpy 1.0 +
31+
3232 agg2 (see below)
3333 freetype 2
3434 libpng
@@ -126,7 +126,7 @@ def __init__(self, width, height, dpi):
126126 self .restore_region = self ._renderer .restore_region
127127 self .mathtext_parser = MathTextParser ('Agg' )
128128 self ._fontd = {}
129-
129+
130130 self .bbox = lbwh_to_bbox (0 ,0 , self .width , self .height )
131131 if __debug__ : verbose .report ('RendererAgg.__init__ done' ,
132132 'debug-annoying' )
@@ -175,7 +175,7 @@ def draw_mathtext(self, gc, x, y, s, prop, angle):
175175 'debug-annoying' )
176176 ox , oy , width , height , descent , font_image , used_characters = \
177177 self .mathtext_parser .parse (s , self .dpi .get (), prop )
178-
178+
179179 x = int (x ) + ox
180180 y = int (y ) - oy
181181 self ._renderer .draw_text_image (font_image , x , y + 1 , angle , gc )
@@ -209,7 +209,7 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath):
209209 self ._renderer .draw_text_image (font .get_image (), int (x ), int (y ) + 1 , angle , gc )
210210
211211
212- def get_text_width_height_descent (self , s , prop , ismath , rgb = ( 0 , 0 , 0 ) ):
212+ def get_text_width_height_descent (self , s , prop , ismath ):
213213 """
214214 get the width and height in display coords of the string s
215215 with FontPropertry prop
@@ -222,8 +222,8 @@ def get_text_width_height_descent(self, s, prop, ismath, rgb=(0,0,0)):
222222 # todo: handle props
223223 size = prop .get_size_in_points ()
224224 texmanager = self .get_texmanager ()
225- Z = texmanager .get_rgba (s , size , self .dpi .get (), rgb )
226- m ,n , tmp = Z .shape
225+ Z = texmanager .get_grey (s , size , self .dpi .get ())
226+ m ,n = Z .shape
227227 # TODO: descent of TeX text (I am imitating backend_ps here -JKS)
228228 return n , m , 0
229229
@@ -242,44 +242,18 @@ def get_text_width_height_descent(self, s, prop, ismath, rgb=(0,0,0)):
242242
243243 def draw_tex (self , gc , x , y , s , prop , angle ):
244244 # todo, handle props, angle, origins
245- rgb = gc .get_rgb ()
246245 size = prop .get_size_in_points ()
247246 dpi = self .dpi .get ()
248247
249- flip = angle == 90
250- w ,h ,d = self .get_text_width_height_descent (s , prop , 'TeX' , rgb )
251- if flip :
252- w ,h = h ,w
253- x -= w
254-
255248 texmanager = self .get_texmanager ()
256- key = s , size , dpi , rgb , angle , texmanager .get_font_config ()
249+ key = s , size , dpi , angle , texmanager .get_font_config ()
257250 im = self .texd .get (key )
258251 if im is None :
259- Z = texmanager .get_rgba (s , size , dpi , rgb )
260- if flip :
261- r = Z [:,:,0 ]
262- g = Z [:,:,1 ]
263- b = Z [:,:,2 ]
264- a = Z [:,:,3 ]
265- m ,n ,tmp = Z .shape
266-
267- def func (x ):
268- return npy .transpose (npy .fliplr (x ))
269-
270- Z = npy .zeros ((n ,m ,4 ), float )
271- Z [:,:,0 ] = func (r )
272- Z [:,:,1 ] = func (g )
273- Z [:,:,2 ] = func (b )
274- Z [:,:,3 ] = func (a )
275- im = fromarray (Z , 1 )
276- im .flipud_out ()
277- self .texd [key ] = im
278-
279- cliprect = gc .get_clip_rectangle ()
280- if cliprect is None : bbox = None
281- else : bbox = lbwh_to_bbox (* cliprect )
282- self .draw_image (x , self .height - y , im , bbox )
252+ Z = texmanager .get_grey (s , size , dpi )
253+ Z = npy .array (Z * 255.0 , npy .uint8 )
254+
255+ self ._renderer .draw_text_image (Z , x , y , angle , gc )
256+
283257
284258 def get_canvas_width_height (self ):
285259 'return the canvas width and height in display coords'
@@ -413,8 +387,8 @@ def print_raw(self, filename, *args, **kwargs):
413387 self .draw ()
414388 self .get_renderer ()._renderer .write_rgba (str (filename ))
415389 print_rgba = print_raw
416-
390+
417391 def print_png (self , filename , * args , ** kwargs ):
418392 self .draw ()
419393 self .get_renderer ()._renderer .write_png (filename , self .figure .dpi .get ())
420-
394+
0 commit comments