Okay this is how I solved it, didn't manage to find the segfault reason though, just providing a quick way to do the job:
my $mime_data = shift ;
my ($orig, $x);
$orig = Image::Magick->new ;
$orig->BlobToImage($mime_data) ;
my ($w, $h, $size, $format) = $orig->Ping(blob => $mime_data);
$w = 1+int(($w-1)/8);
$w *= 8;
# Creating bg for composite image
my $bg = Image::Magick->new ;
$bg->Set(size=>$w."x$h",monochrome =>"True",magick =>"png");
$bg->ReadImage('xc:white');
$bg->Composite(image=>$orig, gravity=>"Center");
my $blob = $bg->ImageToBlob()
undef ($orig,$bg) ;
my $final = Image::Magick->new ;
$final->BlobToImage($blob) ;
$final->Set(magick => "wbmp") ;
$blob = $final->ImageToBlob() ;
undef $final ;
return $blob ;