Управление просмотром изображений Tiff Jpeg - бесплатно / с открытым исходным кодом - PullRequest
0 голосов
/ 23 октября 2011

У меня как миллионы файлов TIFF со сжатием JPEG. Я работаю с этой библиотекой под названием Lib.tif .net версия это очень здорово, и он может читать / помечать / сохранять TIFF со сжатием JPEG (6/7). я также пробовал библиотеки imageMagic и FreeImage (обе похожи)

проблема 1 в том, что .NET (2.0 / 3.5 / 4.0) не поддерживает просмотр Tiff со сжатием Jpeg в элементах управления для просмотра изображений. У кого-нибудь есть обходной путь? или есть какой-либо элемент управления просмотра изображений Tiff Jpeg - бесплатно / с открытым исходным кодом? Можем ли мы вырезать части TIFF как растровые изображения и передать их в управление для просмотра изображений? если да, можете ли вы направить меня? я знаю, что есть много платных версий, таких как GDpicture или viscom или leedtools и т. д. но мне нужно иметь один бесплатно.

проблема 2 заключается в том, что файлы открываются в windows 7 MODI и программе просмотра фотографий, paint.net и других приложениях. (как 32-битная, так и 64-битная версии). НО те же изображения не открываются в средстве просмотра факсов Windows XP. я попробовал с офисом 2007 MODI также, но безуспешно. Любые идеи или обходные пути?

Пожалуйста, помогите.

Спасибо; С уважением Prad

1 Ответ

0 голосов
/ 25 января 2012

Вы можете использовать этот код для извлечения страниц в сжатом виде, который может быть отображен.

У вас могут быть проблемы, если используется сжатие "old jpeg", и в этом случае вам нужно использоватьlibtiff или что-то подобное для преобразования изображения.

public static Image[] GetFrames(Image sourceImage)
{
    Guid objGuid = sourceImage.FrameDimensionsList[0];
    FrameDimension objDimension = new FrameDimension(objGuid);
    int frameCount = sourceImage.GetFrameCount(objDimension);
    Image[] images = new Image[frameCount];
    for (int i = 0; i < frameCount; i++)
    {
        MemoryStream ms = new MemoryStream();
        sourceImage.SelectActiveFrame(objDimension, i);
        sourceImage.Save(ms, ImageFormat.Jpeg);
        images[i] = Image.FromStream(ms);
    }
    return images;
}

Ваша вторая проблема вызвана различными версиями GDI + в Windows.К сожалению, похоже, что нет возможности обновить предыдущие версии.Возможно, вам придется использовать внешний просмотрщик или другое сжатие.

...