【问题标题】:How to set background color for transparent pixels in MagickWand?如何在 MagickWand 中设置透明像素的背景颜色?
【发布时间】:2010-12-01 05:37:34
【问题描述】:

使用 MagickWand API 从 PNG 转换为 JPG 时,如何将透明像素的背景设置为白色?

【问题讨论】:

    标签: imagemagick magickwand


    【解决方案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);
    }
    

    【讨论】:

    • 你可能是我见过的唯一一个在 SO for MagickWand() 上提供 Objective-C 源代码的人。你介意回答我的问题吗? stackoverflow.com/questions/7480812/…
    • 我发现使用 FlattenLayer 会导致生成的 JPG 对于某些 PNG 具有不同的图像尺寸(宽度或高度)。使用 MergeLayer 代替我解决了这个问题。
    【解决方案2】:

    使用 MagickMergeImageLayers

    【讨论】:

      猜你喜欢
      • 2011-04-14
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多