@@ -1386,14 +1386,41 @@ def merge_used_characters(self, other):
1386
1386
def get_image_magnification (self ):
1387
1387
return self .image_dpi / 72.0
1388
1388
1389
- def draw_image (self , gc , x , y , im ):
1389
+ def option_scale_image (self ):
1390
+ """
1391
+ pdf backend support arbitrary scaling of image.
1392
+ """
1393
+ return True
1394
+
1395
+ def draw_image (self , gc , x , y , im , dx = None , dy = None , transform = None ):
1390
1396
self .check_gc (gc )
1391
1397
1392
1398
h , w = im .get_size_out ()
1393
- h , w = 72.0 * h / self .image_dpi , 72.0 * w / self .image_dpi
1399
+
1400
+ if dx is None :
1401
+ w = 72.0 * w / self .image_dpi
1402
+ else :
1403
+ w = dx
1404
+
1405
+ if dy is None :
1406
+ h = 72.0 * h / self .image_dpi
1407
+ else :
1408
+ h = dy
1409
+
1394
1410
imob = self .file .imageObject (im )
1395
- self .file .output (Op .gsave , w , 0 , 0 , h , x , y , Op .concat_matrix ,
1396
- imob , Op .use_xobject , Op .grestore )
1411
+
1412
+ if transform is None :
1413
+ self .file .output (Op .gsave ,
1414
+ w , 0 , 0 , h , x , y , Op .concat_matrix ,
1415
+ imob , Op .use_xobject , Op .grestore )
1416
+ else :
1417
+ tr1 , tr2 , tr3 , tr4 , tr5 , tr6 = transform .to_values ()
1418
+
1419
+ self .file .output (Op .gsave ,
1420
+ tr1 , tr2 , tr3 , tr4 , tr5 , tr6 , Op .concat_matrix ,
1421
+ w , 0 , 0 , h , x , y , Op .concat_matrix ,
1422
+ imob , Op .use_xobject , Op .grestore )
1423
+
1397
1424
1398
1425
def draw_path (self , gc , path , transform , rgbFace = None ):
1399
1426
self .check_gc (gc , rgbFace )
0 commit comments