【问题标题】:Magick Image creating shadow behind the imageMagick Image 在图像后面创建阴影
【发布时间】:2018-08-20 19:07:19
【问题描述】:

一直在尝试使用以下代码获取阴影:

using (MagickImage image = new MagickImage(@"C:\Users\David\Pictures\YnTf9.png"))
{
     MagickImage _shadow = new MagickImage(bitmap);

     using (IMagickImage backgroundImg = image.Clone())
     {
          backgroundImg.Blur(0, 5);
          backgroundImg.Crop(400, 300, Gravity.Center);
          backgroundImg.RePage();

          image.Resize(0, 300);
          _shadow.Resize(0, 300);
          _shadow.Shadow(10, 10, 0.8, (Percentage)80, MagickColor.FromRgb(0, 0, 0));

          backgroundImg.Composite(_shadow, Gravity.Center, CompositeOperator.SrcOver);
          backgroundImg.Composite(image, Gravity.Center, CompositeOperator.SrcAtop);
          backgroundImg.Write(@"C:\Users\David\Pictures\NEW.png");
     }
}

但结果看起来就像最初那样:

我希望用上面的代码完成的是:

谁能帮帮我? :)

更新 好像还是不行……

【问题讨论】:

    标签: c# imagemagick imagick imagemagick-convert


    【解决方案1】:

    在 cmd 窗口(不是 bat 文件)中尝试这是 Windows 上的 ImageMagick 7:

    magick YnTf9.png ^
    ( -clone 0 -blur 0x10 -gravity center -crop 400x300+0+0 +repage ) ^
    ( -clone 0 -resize x300 ) ^
    ( -clone 1 -fill white -colorize 100 ) ^
    ( -clone 2 -fill black -colorize 100 ) ^
    ( -clone 3,4 -gravity center -compose over -composite -blur 0x15 -level 40x100% ) ^
    -delete 0,3,4 ^
    ( -clone 0,2 -gravity center -compose multiply -composite ) ^
    -delete 0,2 +swap ^
    -gravity center -compose over -composite ^
    result.png
    

    【讨论】:

      【解决方案2】:

      我不使用 .NET,但在命令行 ImageMagick(unix 语法)中,您可以执行以下操作:

      输入:

      convert YnTf9.png \
      \( -clone 0 -blur 0x10 -gravity center -crop 400x300+0+0 +repage \) \
      \( -clone 0 -resize x300 \) \
      \( -clone 1 -fill white -colorize 100 \) \
      \( -clone 2 -fill black -colorize 100 \) \
      \( -clone 3,4 -gravity center -compose over -composite -blur 0x15 -level 40x100% \) \
      -delete 0,3,4 \
      \( -clone 0,2 -gravity center -compose multiply -composite \) \
      -delete 0,2 +swap \
      -gravity center -compose over -composite \
      result.png
      

      【讨论】:

      • 对于 imagemagick 7,将 convert 更改为 magick 并从括号中删除 \ 并将行尾更改为 ^。见imagemagick.org/Usage/windows
      • 似乎仍然无法正常工作。我已经更新了我的 OP。
      • 如果您使用的是 Windows,请从括号中删除 \ 并将行尾 \ 更改为 ^。如果在 .bat 文件中使用它,则将 % 更改为 %%
      猜你喜欢
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 2013-01-17
      • 2020-05-03
      • 1970-01-01
      • 2012-07-01
      相关资源
      最近更新 更多