FattView/fpdf/tutorial/gradients.py
from FPDF.Gradients import *
pdf=Gradients()
#first page
pdf.AddPage()
pdf.SetFont('Arial','',14)
pdf.Cell(0,5,'Page 1',0,1,'C')
pdf.Ln()
#set colors for gradients (r,g,b) or (grey 0-255)
red=[255,0,0]
blue=[0,0,200]
yellow=[255,255,0]
green=[0,255,0]
white=[255]
black=[0]
#set the coordinates x1,y1,x2,y2 of the gradient (see linear_gradient_coords.jpg)
coords=[0.0,0.0,1.0,0.0]
#paint a linear gradient
pdf.LinearGradient(20,25,80,80,red,blue,coords)
#set the coordinates fx,fy,cx,cy,r of the gradient (see radial_gradient_coords.jpg)
coords=[0.5,0.5,1.0,1.0,1.2]
#paint a radial gradient
pdf.RadialGradient(110,25,80,80,white,black,coords)
#paint a coons patch mesh with default coordinates
pdf.CoonsPatchMesh(20,115,80,80,yellow, blue, green, red)
#set the coordinates for the cubic Bézier points x1,y1 ... x12, y12 of the patch (see coons_patch_mesh_coords.jpg)
coords=[0.00,0.00, 0.33,0.20, #lower left
0.67,0.00, 1.00,0.00, 0.80,0.33, #lower right
0.80,0.67, 1.00,1.00, 0.67,0.80, #upper right
0.33,1.00, 0.00,1.00, 0.20,0.67, #upper left
0.00,0.33] #lower left
coords_min=0.0 #minimum value of the coordinates
coords_max=1.0 #maximum value of the coordinates
#paint a coons patch gradient with the above coordinates
pdf.CoonsPatchMesh(110,115,80,80,yellow,blue,green,red,coords,coords_min,coords_max)
#second page
pdf.AddPage()
pdf.Cell(0,5,'Page 2',0,1,'C')
pdf.Ln()
#first patch: f = 0
patch_array={0:{},1:{},2:{},3:{}}
patch_array[0]['f']=0
patch_array[0]['points']=[0.00,0.00, 0.33,0.00,
0.67,0.00, 1.00,0.00, 1.00,0.33,
0.8,0.67, 1.00,1.00, 0.67,0.8,
0.33,1.80, 0.00,1.00, 0.00,0.67,
0.00,0.33]
patch_array[0]['colors']={}
patch_array[0]['colors'][0]={'r':255.0,'g':255.0,'b':0.0}
patch_array[0]['colors'][1]={'r':0.0,'g':0.0,'b':255.0}
patch_array[0]['colors'][2]={'r':0.0,'g':255.0,'b':0.0}
patch_array[0]['colors'][3]={'r':255.0,'g':0.0,'b':0.0}
#second patch - above the other: f = 2
patch_array[1]['f']=2
patch_array[1]['points']=[0.00,1.33,
0.00,1.67, 0.00,2.00, 0.33,2.00,
0.67,2.00, 1.00,2.00, 1.00,1.67,
1.5,1.33]
patch_array[1]['colors']={}
patch_array[1]['colors'][0]={'r':0.0,'g':0.0,'b':0.0}
patch_array[1]['colors'][1]={'r':255.0,'g':0.0,'b':255.0}
#third patch - right of the above: f = 3
patch_array[2]['f']=3
patch_array[2]['points']=[1.33,0.80,
1.67,1.50, 2.00,1.00, 2.00,1.33,
2.00,1.67, 2.00,2.00, 1.67,2.00,
1.33,2.00]
patch_array[2]['colors']={}
patch_array[2]['colors'][0]={'r':0.0,'g':255.0,'b':255.0}
patch_array[2]['colors'][1]={'r':0.0,'g':0.0,'b':0.0}
#fourth patch - below the above, which means left(?) of the above: f = 1
patch_array[3]['f']=1
patch_array[3]['points']=[2.00,0.67,
2.00,0.33, 2.00,0.00, 1.67,0.00,
1.33,0.00, 1.00,0.00, 1.00,0.33,
0.8,0.67]
patch_array[3]['colors']={}
patch_array[3]['colors'][0]={'r':0.0,'g':0.0,'b':0.0}
patch_array[3]['colors'][1]={'r':0.0,'g':0.0,'b':255.0}
coords_min=0
coords_max=2
pdf.CoonsPatchMesh(10,25,190,200,'','','','',patch_array,coords_min,coords_max)
pdf.Output('gradients.pdf','F')