.NET многостраничный Tiff с компрессией с потерями - PullRequest
3 голосов
/ 01 июня 2010

Мне нужен способ взять несколько jpgs и преобразовать их в один многостраничный Tiff. У меня есть такая работа с использованием GDI +, однако он работает только со сжатием LZW, который без потерь. Это означает, что мои 3 50KB Jpgs превращаются в 3MB многостраничный файл Tiff. Это не то, что я могу принять для программного обеспечения, над которым я работаю.

Я знаю, что формат Tiff Image может использовать схему сжатия JPG, но GDI +, похоже, не поддерживает это.

Если кто-то знает, как это сделать в .NET (C #) или в любом компоненте, который выполняет это преобразование.

Ответы [ 2 ]

3 голосов
/ 02 июня 2010

BitMiracle LibTiff.net поддерживает JPG (наряду со всеми другими кодеками Tiff), а также многостраничные TIFF. Я использовал его, хотя в сочетании с другими кодеками, и имел очень хороший опыт работы с ним; это также хорошо проверено (юнит-тесты включены). Доступный под LGPL. Поддержка также очень хорошая (недавно обнаружена проблема в файлах> 2 ГБ, быстрый ответ и обновленный код)

Надеюсь, это поможет вам. Извините, я не могу не быть в восторге от компонента, так как он мне очень помог и бесплатный.

1 голос
/ 04 июня 2010

Я работаю на Atalasoft , и у нас есть инструменты .NET, которые легко это сделают.

public void CombineIntoTiff(string outputTiff, params string[] inputFiles)
{
    using (FileStream stm = new FileStream(outputTiff, FileMode.Create)) {
        TiffEncoder enc = new TiffEncoder();
        enc.Compression = TiffCompression.JpegCompression;
        enc.Append = true;
        foreach (string file in inputFiles) {
            AtalaImage image = null;
            try { image = new AtalaImage(file); } catch { continue; }
            enc.Save(image);
        }
    }
}

Следует помнить, что в формате TIFF существует два вида сжатия JPEG: одно одобрено стандартом, а другое признано / практически не допускается. Последний, называемый JPEG в старом стиле, был прикреплен к TIFF и является причиной большего количества испорченных файлов, чем любое другое сжатие в TIFF. Приведенный выше код будет использовать стандартное сжатие JPEG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...