Magick Image 在图像后面创建阴影
Magick Image creating shadow behind the image
已经尝试了一段时间,现在尝试使用以下代码获得阴影:
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");
}
}
但结果看起来像最初的那样:
我希望用上面的代码完成的是:
有人能帮帮我吗? :)
更新
似乎仍然没有工作...
我不使用 .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
在 cmd window(不是 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
已经尝试了一段时间,现在尝试使用以下代码获得阴影:
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");
}
}
但结果看起来像最初的那样:
我希望用上面的代码完成的是:
有人能帮帮我吗? :)
更新 似乎仍然没有工作...
我不使用 .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
在 cmd window(不是 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