我如何使用“蒙太奇”功能从Magick.net
本文关键字:蒙太奇 Magick net 功能 何使用 | 更新日期: 2023-09-27 18:14:22
我是新的Magick.net,但我正试图使一个文件生成器。我有它的工作很好从Linux命令行(没有大小我喜欢虽然),但我需要做一个。net应用程序供其他人使用,没有访问Linux,或网络(所以使用PHP没有问题,至少还没有)。
执行如下操作:
montage -background none -fill black -font Helvetica-Condensed-Light -pointsize 26 label:'Foobar Controller 3.1.4.0 Installer' +set label -shadow -geometry +5+5 test_v3.png
但是不确定如何在c# .net包装器中使用montage
。
using (MagickImage image = new MagickImage(new MagickColor("#000000"), 419, 39))
{
new Drawables()
// Draw text on the image
但是我很困惑如何才能做到这一点。
任何建议都非常感谢。文档看起来很混乱,因为我没有做一些"标准"的事情,因为输出将在图像面板中预览,并带有保存到文件系统的选项。
下面是一个您需要如何从蒙太奇翻译命令的示例。
using (var images = new MagickImageCollection())
{
var readSettings = new MagickReadSettings()
{
BackgroundColor = MagickColors.None, // -background none
FillColor = MagickColors.Black, // -fill black
Font = "Helvetica-Condensed-Light", // -font Helvetica-Condensed-Light
FontPointsize = 26 // -pointsize 26
};
// label:'Foobar Controller 3.1.4.0 Installer'
var image = new MagickImage("label:Foobar Controller 3.1.4.0 Installer", readSettings);
image.RemoveAttribute("label"); // +set label
images.Add(image);
var montageSettings = new MontageSettings()
{
BackgroundColor = MagickColors.None, // -background none
Shadow = true, // -shadow
Geometry = new MagickGeometry(5, 5, 0, 0) // -geometry +5+5
};
using (MagickImage result = images.Montage(montageSettings))
{
result.Write("test_v3.png");
}
}
但是因为你只使用蒙太奇的影子部分,你也可以像这样执行你的代码:
var readSettings = new MagickReadSettings()
{
BackgroundColor = MagickColors.None,
FillColor = MagickColors.Black,
Font = "Helvetica-Condensed-Light",
FontPointsize = 26
};
var label = new MagickImage("label:Foobar Controller 3.1.4.0 Installer", readSettings);
using (MagickImage shadow = label.Clone())
{
// This is what is happening under the hood.
shadow.Shadow(5, 5, 2.0, new Percentage(80), MagickColors.Black);
shadow.Composite(label, CompositeOperator.Over);
shadow.Write("test_v3.png");
}