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

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

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

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

Потому что я думаю, что такой просмотрщик работает sth. как:

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

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

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

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

С уважением,

инно

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

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


person Inno    schedule 03.08.2010    source источник


Ответы (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

ХТН

person Zippit    schedule 03.08.2010

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

 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.

person prashant    schedule 02.02.2011