【问题标题】:How to Create image tiles with Magick.NET or GraphicsMagick.NET如何使用 Magick.NET 或 GraphicsMagick.NET 创建图像图块
【发布时间】:2014-12-24 04:03:29
【问题描述】:

我在 CLI 上使用 ImageMagick,如下所示:

gm convert input.png -crop 512x512 +repage +adjoin "tiles/tile%02d.png"

创建我的输入图像的平铺版本。但我想用 GraphicsMagick.NET 或 Magick.NET 来做,而不是使用命令行。我遇到的问题是 GM.NET 或 IM.NET 似乎都不能正确支持“+repage”和“+adjoin”。相反,两者都只生成一个输出图像。

我在 C# 中尝试了以下代码,但没有成功。

GraphicsMagick.NET 测试

MagickImage image = new MagickImage("test.png");
MagickGeometry geo = new MagickGeometry(512,512);

image.Crop(geo);
image.RePage();
image.Adjoin = true; // i tried false too! 
image.Write("testout_%d.png");

ImageMagick.NET 测试

// ImageMagick.NET Test
using (MagickImage image = new MagickImage("test.png"))
{
   image.Crop(512, 512,Gravity.Northwest);
   image.RePage();
   image.Adjoin = true;
   image.Write("testout_%d.png");
}

我也尝试过 MSL 来生成我的图像的平铺版本,但 MSL 似乎也不支持这一点,MSL 中完全缺少 adjoin 和 repage。

【问题讨论】:

    标签: c# imagemagick graphicsmagick magick.net


    【解决方案1】:

    crop 选项调用的代码与您期望的不同。目前只有 Magick.NET 支持将图像裁剪成图块。以下是您如何做到这一点的示例。

    using (MagickImage image = new MagickImage("test.png"))
    {
      int i = 0;
      foreach (MagickImage tile in image.CropToTiles(512, 512))
      {
        tile.Write("testout_" + (i++) + ".png");
      }
    }
    

    附: MagickScript (MSL) 支持 adjoin 和 rePage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-30
      • 2020-05-28
      • 2015-08-16
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多