Как реализовать просмотрщик изображений или PDF?

В целях обучения я хотел бы знать, как реализовать программу просмотра изображений (и / или) PDF самостоятельно.

Меня интересует общий подход к реализации такой вещи.

Я уже читал о различных форматах в сети (tiff / pdf), поэтому я обнаружил, что эти файлы имеют специальный формат, который описывает, где я должен искать заголовок, где находится нижний колонтитул и где информация об изображении (в расшифрованном виде)) является.

Потому что я думаю, что такой зритель работает. лайк:

  • открытие файла
  • чтение различной информации о файле (заголовок, нижний колонтитул и т. д.)
  • "перевести" позиции пикселей

Мне нужно знать, как получить позиции пикселей (в случае файла TIFF).

Как создать это как элемент управления? Куда я должен поместить пиксели?

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

С Уважением,

Inno

PS: Я бы предпочел решение на C#, но если оно на другом языке, это тоже нормально. Платформа должна быть Microsoft Windows (прежде всего).

PPS: он должен работать без уже установленного pdf-/ display-приложения.

2 ответа

Решение

Для любого зрителя, подобного этому, вам нужно будет найти спецификации для каждого типа файла, который вы хотите отобразить, и выяснить, как закодированы его данные. Некоторые форматы изображений основаны на других или используют похожие методы кодирования, в то время как другие полностью отличаются друг от друга. PDF еще один зверь. Я немного поработал над этим, и, насколько я помню (я могу ошибаться, это было давно), он в основном представляет собой серию объектов, каждый из которых имеет уникальное положение, размер и различные атрибуты, зависящие от типа объекта.,

Я бы взглянул на Википедию. На самом деле в нем есть несколько действительно хороших статей о различных форматах изображений.

http://en.wikipedia.org/wiki/JPEG

И это определенно укажет вам официальные документы по стандартам для каждого формата, который вы хотите охватить.

В конечном итоге вам, вероятно, придется читать / реализовывать rfc для каждого формата:

JPEG - http://tools.ietf.org/html/rfc1341
PNG - http://www.faqs.org/rfcs/rfc2083.html
GIF - http://www.w3.org/Graphics/GIF/spec-gif89a.txt
BMP - http://www.faqs.org/rfcs/rfc797.html

НТН

Вот способ для преобразования вашего изображения в байтовый массив.

 public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
 MemoryStream ms = new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
 return  ms.ToArray();
}

Как создать это как элемент управления? Куда я должен поместить пиксели? Этот байтовый массив содержит данные о пикселях вашего изображения.(Посмотрите, какой у вас тип изображения: 8-битный или 16-битный). Теперь вы можете нарисовать ваши изображения на любой панели и сделать их пользовательским элементом управления.

Я не знаю о формате PDF.

Другие вопросы по тегам