Как реализовать просмотрщик изображений или PDF? - PullRequest
0 голосов
/ 03 августа 2010

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

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

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

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

  • открытие файла
  • чтение различной информации о файле (верхний и нижний колонтитулы и т.1016 * Мне нужно знать, как получить положения пикселей (в случае файла TIFF).

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

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

    С уважением,

    inno

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

    PPS: она должна работать без уже установленного pdf- / view-application.

Ответы [ 2 ]

1 голос
/ 03 августа 2010

Для любого зрителя, подобного этому, вам нужно будет найти спецификации для каждого типа файла, который вы хотите отобразить, и выяснить, как закодированы его данные.Некоторые форматы изображений основаны на других или используют похожие методы кодирования, в то время как другие полностью отличаются друг от друга.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

HTH

0 голосов
/ 02 февраля 2011

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

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

Как создать это как элемент управления? Куда я должен поместить пиксели? этот байтовый массив содержит данные о пикселях вашего изображения. Теперь вы можете нарисовать ваши изображения на любой панели и сделать это в качестве пользовательского элемента управления.

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

...