首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Magick.net中使用`montage`功能

如何在Magick.net中使用`montage`功能
EN

Stack Overflow用户
提问于 2016-10-22 04:55:34
回答 1查看 1.1K关注 0票数 1

我是Magick.net的新手,但我正在尝试制作一个文件生成器。我已经让它在Linux命令行中工作得很好(虽然没有我喜欢的大小),但我需要制作一个.net应用程序,供无法访问Linux或web的其他人使用(所以使用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

代码语言:javascript
复制
using (MagickImage image = new MagickImage(new MagickColor("#000000"), 419, 39))
            {
               new Drawables()
              // Draw text on the image

但我对如何实现这一点感到相当困惑。

任何建议都是非常感谢的。文档看起来很混乱,因为我不是在做一些“标准”的事情,因为输出将在图像面板中预览,并可以选择保存到文件系统。

EN

回答 1

Stack Overflow用户

发布于 2016-10-30 05:52:20

下面是你需要如何从蒙太奇翻译命令的一个例子。

代码语言:javascript
复制
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");
  }
}

但是,因为你只使用了蒙太奇的阴影部分,所以你也可以像这样执行你的代码:

代码语言:javascript
复制
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");
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40185318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档