2010-08-03 31 views
0

爲了學習的目的我想知道如何自己實現一個圖像(和/或)pdf查看器。如何實現圖像或PDF查看器?

我對執行這樣的事情的一般方法感興趣。

我已經閱讀了關於網上不同格式(tiff/pdf)的內容,所以我發現這些文件有一個特殊的格式,它描述了我必須在哪裏查找頁眉,頁腳是什麼以及圖像信息在哪裏(以解密形式)是。

因爲我認爲這樣的查看器工作。像:

  • 打開文件
  • 讀取不同的文件信息(頁眉,頁腳等)
  • 「翻譯」 的像素位置

我需要知道,如何讓像素職位(如果是tiff文件)。

如何創建這個控件?我必須在哪裏放置像素?

如果我錯了,隨時糾正我,因爲ATM我真的沒有一個想法,一切都只是猜測。

問候,

INNO

P.S:我寧願在C#中的解決方案,但如果它是另一種語言,它的確定了。平臺應該是Microsoft Windows(首先)。

P.P.S .:它應該沒有已經安裝的pdf- /查看應用程序。

回答

1

對於像這樣的任何瀏覽器,您將不得不查看您想要顯示的每種文件類型的規格並找出其數據的編碼方式。某些圖像格式建立在其他圖像格式上,或使用類似的編碼技術,而其他圖像格式則完全不同。 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

以下是將圖像轉換爲字節數組的方法。

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格式。