How to convert SVG files to PNG using ImageMagick in PHP, retaining the alpha channel

Right, I’ve been frustrating myself over this one for probably almost an hour now, and I finally found the solution buried somewhere on a forum. Turns out that the trick is setting a transparent background first.

So, in order to convert SVG to PNG with the PHP IMagick extension, without losing your alpha channel, do the following:

$image = new IMagick();
$image->setBackgroundColor(new ImagickPixel('transparent'));
$image->readImageBlob($svg_data_as_string);
$image->setImageFormat("png32");