我有大型JPG图像(比如20000x10000像素),想要从这些图像中提取子图像而不加载整个图像。
我发现可以使用此ImageMagick命令:
convert -extract 226x248+4216+3377 a.jpg o.jpg
但我需要在我的C#WPF应用程序中使用它。
Magick.NET没有实现提取方法。
这是否有任何.NET库?或者至少可以复制一个简单的exe,无需在客户机上安装像ImageMagick这样的大型库。
答案 0 :(得分:2)
Magick.NET确实支持提取子图像。您应该使用裁剪方法:
using(MagickImage image = new MagickImage("a.jpg"))
{
image.Crop(new MagickGeometry(226,248,4216,3377));
image.Write("o,jpg");
}
ImageMagick的-extract选项将在裁剪出您需要的部分之前读取整个jpg。所以这可能不是你问题的解决方案。仅对于一小部分格式,图像将无法完全读取。
答案 1 :(得分:1)
我不知道有哪些c#库可以做到这一点。不过,http://www.gdal.org的格达尔可以做到这一点。它也有c#包装器,但为此目的可能有点笨重。