Here you will learn how to add words (annotations) to your images.
?w=320&h=70&bgc=_4c96d7&annotate=t:How+are+you+doing?

First thing to disclose is we are building a canvas by using a transparent pixel (1x1) gif, and requesting it at 320x70 pixels with a background color.
_px.gif?w=320&h=70&bgc=_4c96d7
Some defaults we can mention for this annotation:
northwest) of the imagewhiteRoboto24&annotateThe annotate transformation is a complex querystring parameter where all the following values can be specified.
| Property | param | Description | Default |
|---|---|---|---|
| Text | t | The text to annotate | Annotation |
| Placement | o | Placement + offsets of the annotation | northwest,0,0 |
| Pointsize | s | Sizing of the font | 24 |
| Color | c | Color for the text | white |
| Font | f | Text font View list | Roboto |
| Base64 | b64 | Flag to specify if text has been Base64 encoded | false |
All these values are given in the same annotate parameter as pairs separated by * (star)
These pairs are each separated by : (colon)
An example of making a size 30 black annotation centered to the bottom of the image would be:
&annotate=t:My%20Annotation*s:30*c:black*o:south

The pairs are:
and are all smashed together with stars *
Now let’s change the font to Baloo and center it in the image (also set a faint yellow color)
&annotate=t:Hello%20World!*s:30*c:_ffa*o:center*f:Baloo

o:<snap-point>,<x-offset>,<y-offset>Placing can itself become complex to allow flexibility.
The simplest value is specifying a snapping point on the image which can be thought of as places along the image border (and the center), which can be:
northwest north northeast
west center east
southwest south southeastAnother way to place your annotation can be by specifying x and y coordinates like: 0,0
The origin 0,0 is the image’s top-left corner by default. This origin changes depending on the snapping point specified.
And for maximum flexibility, using the 3 possible parts: o:south,0,10 < — This places the annotation centered and snapped to the bottom of the image, then it separates it 10 pixels from the bottom border.
&annotate=t:Hello%20World!*s:30*c:_ffa*o:south*f:Baloo

&annotate=t:Hello%20World!*s:30*c:_ffa*o:south,0,10*f:Baloo

Base64 encode your annotation texts to avoid surprises.
Because the parameter uses stars and colons for its syntax, Base64 enables annotating these characters (along with other controversial characters) safely.
Each font will manage it’s paddings in their own way.
There are yet more instructions for annotate that are targetted towards creating a shadow (or border).
| Property | param | Description | Default |
|---|---|---|---|
| Shadow Width | sw | Shadow/Outline width | 0 |
| Shadow Color | sc | Shadow/Outline color | black |
| Shadow Offset | so | Shadow/Outline offset respective of annotation | 0,0 |
| Shadow Blur | sb | Blur for the Shadow/Outline | 0 |
Shadow with width=2
&annotate=t:Hello%20World!*s:30*c:_ffa*o:center*f:Baloo*sw:2

Shadow with width=2 and blur=2
&annotate=t:Hello%20World!*s:30*c:_ffa*o:center*f:Baloo*sw:2*sb:2

Shadow - adding offset and making it indigo
&annotate=t:Hello%20World!*s:30*c:_ffa*o:center*f:Baloo*sw:2*sb:2*so:4,4*sc:indigo

On the test image (with offset 120,-60)

While the annotate instructions can be complex, this is to support all the values to achieve its configurations. Another factor that was considered is the ability to specify multiple annotations for the same image. This is achieved by appending more &annotate parameters to the transformation.

&annotate=t:S0VFUCpPRkY=*b64:1*s:45*c:_f00*o:northwest,10,10*f:OldStamper*sw:2*sb:2*so:4,4*sc:black
&annotate=t:THE+WALLS*s:45*c:_ffa*o:southeast,10,10*f:JerseyLetters*sw:2*sb:2*so:-4,-4*sc:black
&annotate=t:...means+you!*s:25*c:lime*o:90,240*f:Pacifico*sw:4*sc:black