For comparison, this is how you can achieve the same effect in ConTeXt
% Search figures in TEXMF tree
\setupexternalfigures
[location={local,global,default}]
\definecolor[transparentblue][b=1,t=.5,a=1]
\starttext
\startcombination[nx=2]
{\externalfigure[mill.png]]}
{Normal figure}
{\externalfigure[mill.png][background={foreground,color}, backgroundcolor=transparentblue]}
{Transparent overshadow}
\stopcombination

The idea is pretty straight forward. Each externalfigure is a frame, and one of the properties of the frame is that you can set the background. One of the default backgrounds is color, which fills the background with backgroundcolor.
Now what you want can be thought of as a background that is placed over the content, rather than under it. Specifying background={foreground,color} tells ConTeXt to first place the foreground layer (that is the layer containing the content) and then place the color layer on top of it.
This idea works with any ConTeXt environment that accepts a background key: framed, framedtext, TABLE, page backgrounds, etc.
If you want to apply this to multiple images, then you can define
\defineexternalfigure[tint][background={foreground,color}, backgroundcolor=transparentblue]
and use it as follows
\externalfigure[filename][tint]
This will add the overshadow to the figure. If you want, you can override the shadow color using
\externalfigure[filename][tint][backgroundcolor=transparentred]
Here is a complete example showing this.
% Search figures in TEXMF tree
\setupexternalfigures
[location={local,global,default}]
\definecolor[transparentblue][b=1,t=.5,a=1]
\definecolor[transparentred][r=1,t=.5,a=1]
\defineexternalfigure[tint][background={foreground,color}, backgroundcolor=transparentblue]
\starttext
\startcombination[nx=2]
{\externalfigure[mill.png][tint]}
{Default tint}
{\externalfigure[mill.png][tint][backgroundcolor=transparentred]}
{Override shadow color}
\stopcombination
\stoptext
which gives
