问题
When converting from PNG to JPG using the MagickWand API, how do I set the background to white for transparent pixels?
回答1:
if(current_wand && IsMagickWand(current_wand)){
status=MagickReadImage(current_wand, "test.png");
if (status == MagickFalse) {
ThrowWandException(current_wand);
}
PixelWand *color = NewPixelWand();
PixelSetColor(color, "white");
MagickSetImageBackgroundColor(current_wand, color);
MagickWand *newwand = MagickMergeImageLayers(current_wand, FlattenLayer);
MagickWriteImage(newwand, "test.jpg");
DestroyMagickWand(newwand);
}
回答2:
Use MagickMergeImageLayers
来源:https://stackoverflow.com/questions/372872/how-to-set-background-color-for-transparent-pixels-in-magickwand