Я могу преобразовать одностраничный TIFF в формат PNG в .Net Однако, как бы я сделал это для многостраничного TIFF?
Вы должны выбрать активный кадр (страницу) в цикле и преобразовать каждую страницу tiff в png.
int pageCount = 1;
try
{
pageCount = bmp.GetFrameCount(FrameDimension.Page);
}
catch (Exception)
{
// sometimes GDI+ throws internal exceptions.
// just ignore them.
}
for (int page = 0; page < pageCount; page++)
{
bmp.SelectActiveFrame(FrameDimension.Page, page);
// save or otherwise process tiff page
}
Этот код предполагает, что вы можете загрузить изображение Tiff в объект System.Drawing.Bitmap.
Imagemagick может делать с изображениями практически все, но это может занять некоторое время, чтобы сделать это правильно из-за огромного количества вариантов на выбор. Вы можете использовать взаимодействие для работы непосредственно с Imagemagick или вы можете использовать оболочку .NET. Я использовал только взаимодействие, поэтому я не знаю, насколько хороша или плоха обертка.
private readonly ImageMagickObject.MagickImageClass _imageMagick = new ImageMagickObject.MagickImageClass();
var parameters = new object[] {sourcePath, destPath};
_imageMagick.Convert(ref parameters);
Параметры вы должны выяснить сами на сайте ImageMagick. Посмотрите справку по параметру командной строки и поищите на форуме многостраничный tiff. Я предполагаю, что вы хотите разделить TIFF на несколько PNG? Тогда может быть что-то вроде этого:
convert multipage.tif single%d.png