如何使用Magick.NET或GraphicsMagick.NET创建图像平铺
本文关键字:NET 图像 创建 何使用 Magick GraphicsMagick | 更新日期: 2023-09-27 18:28:19
我在CLI上使用ImageMagick,如下所示:
gm convert input.png -crop 512x512 +repage +adjoin "tiles/tile%02d.png"
以创建我的输入图像的平铺版本。但我想用GraphicsMagick.NET或Magick.NET来完成,而不是使用命令行。我遇到的问题是,无论是GM.NET还是IM.NET似乎都不正确地支持"+repage"answers"+joint"。相反,两者都只生成一个输出图像。
我在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中完全缺少邻接和重分页。
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)支持jointin和rePage