Привет всем, у меня есть следующая командная строка, которая отлично подходит для того, что я хочу сделать, но не могу перевести ее в версию C# Magick.net:
convert YnTf9.png ^
( -clone 0 -blur 0x5 -gravity center -crop 400x300+0+0 +repage ) ^
( -clone 0 -resize x300 ) ^
-delete 0 ^
-gravity center -compose over -composite ^
result.png
Пока у меня есть этот код C#:
using (MagickImage image = new MagickImage(@"C:\Users\David\Pictures\YnTf9.png"))
{
using (MagickImage backgroundImg = (MagickImage)image.Clone())
{
backgroundImg.Blur(0, 5);
backgroundImg.Crop(400, 300, Gravity.Center);
backgroundImg.RePage();
backgroundImg.Resize(0, 300);
image.Composite(backgroundImg, Gravity.Center, CompositeOperator.SrcOver);
image.Write("CODETest.png");
}
}
Сделав это, я запустил его, и получилось обычное изображение:
Когда это должно выглядеть так:
поэтому я знаю, что я не выполняю эфир в правильном порядке и / или правильных командах.
Было бы здорово, если бы кто-нибудь мог перевести это для меня! :)





-clone в скобках создает индивидуальное изображение:
convert YnTf9.png ^
# Creates a copy of YnTf9.png.
( -clone 0 -blur 0x5 -gravity center -crop 400x300+0+0 +repage ) ^
# Creates another copy of YnTf9.png
( -clone 0 -resize x300 ) ^
# Removes YnTf9.png from the image list, you now only have the two clones
-delete 0 ^
-gravity center -compose over -composite ^
result.png
Но в вашей ситуации вам не нужно создавать второй клон. Ваша команда может быть переведена на это:
using (MagickImage image = new MagickImage("i:/YnTf9.png"))
{
using (IMagickImage backgroundImg = image.Clone())
{
backgroundImg.Blur(0, 5);
backgroundImg.Crop(400, 300, Gravity.Center);
backgroundImg.RePage();
// Resize the original image instead of creating a clone, resizing it and then
// delete the original.
image.Resize(0, 300);
backgroundImg.Composite(image, Gravity.Center, CompositeOperator.SrcOver);
backgroundImg.Write("i:/result.png");
}
}
Похоже, вы единственный, кто знает, как преобразовать командную строку в .net. Не могли бы вы мне помочь с указанным выше URL?
Понятно
using (MagickImage image = new MagickImage(bitmap))
{
using (IMagickImage backgroundImg = image.Clone())
{
backgroundImg.Blur(0, 5);
backgroundImg.Crop(400, 300, Gravity.Center);
backgroundImg.RePage();
image.Resize(0, 300);
IMagickImage _shadow = new MagickImage(MagickColor.FromRgb(0, 0, 0), image.Width + 20, 400);
_shadow.Shadow(backgroundImg.Width, 400, 10, (Percentage)90);
backgroundImg.Composite(_shadow, Gravity.Center, CompositeOperator.Atop);
backgroundImg.Composite(image, Gravity.Center, CompositeOperator.SrcAtop);
backgroundImg.Write(@"C:\Users\David\Pictures\NEWest.png");
}
}
Не могли бы снова помочь мне с преобразованием командной строки на C#? stackoverflow.com/questions/49240712