如何僅使用記事本建立 PNG 映像?

如何僅使用記事本建立 PNG 映像?

眾所周知,所有文件都是資料的簡單容器。PNG文件也不例外。

PNG 檔案基本上只是指彩色像素的矩形網格,因此它不可能那麼複雜 - 當然不像視訊甚至 GIF 那麼複雜。

我的問題是,如何僅使用記事本從無到有創建 PNG?然後可以在瀏覽器(例如​​ Chrome)中開啟該文件,瀏覽器會將其識別為圖像。

一個由四個彩色像素組成的小正方形就是一個很好的例子。

使用 Paint 嘗試查看正在發生的情況會產生有趣的結果。

如果使用 Paint 建立一個如下所示的 PNG 檔案(它非常小,2x2 像素,因此您可能需要放大)

在此輸入影像描述

產生的文字檔案如下所示:

IHDR ýÔšs sRGB ®Îé gAMA ±üa pHYs à ÃÇo¨d IDATWcè`ýÿ‰Ai£½Ç !ß=î_— IEND®B`‚

但幕後到底發生了什麼事?

澄清一下,問題不是如何創建任何 PNG 文件,而是如何使用文字建立符合特定條件的 PNG 文件,例如彩虹的 7 種顏色的線?

答案1

如何僅使用記事本從無到有創建 PNG?

好容易。使用十六進制編輯器會更容易(但仍然很困難)。

本質上,您必須創建一個格式與PNG規格

檔案頭必須以 PNG 簽章開頭,該簽章由以下十進位值組成:

137 80 78 71 13 10 26 10

無法使用記事本輸入十進位 10(換行符號)(因此建議使用十六進位編輯器)來建立檔案。

您還需要能夠計算 CRC 值並遵循許多複雜的區塊排序規則。

如果您閱讀上面連結的規範,您會發現手動建立 PNG 是多麼複雜。

使用支援 PNG 的圖形編輯器會容易得多。

答案2

這是簡單 png 圖像的「文字」的樣子

在此輸入影像描述

這個數據來自下面的簡單圖。

在此輸入影像描述

因此,您不能僅透過將「文字」放入文件來建立 PNG 映像文件,除非您使用的文字編輯器可以處理特殊字元並且不會破壞元資料(如 notepad++)。您實際上也無法鍵入 png 檔案的“代碼”,因為它的“語法”對於任何類型的鍵盤來說都太複雜。

當您嘗試時會發生以下情況: 在此輸入影像描述

答案3

只要打開按 Windows Flag 鍵在此輸入影像描述一次,然後開始輸入Paint;一旦它從選單中彈出,只需單擊它即可啟動應用程式。

在此輸入影像描述

現在打開一個空白的繪畫螢幕,您可以根據需要建立顏色填充的方塊等,然後當您準備好將其儲存為檔案時,PNG只需轉到 File | Save As | PNG Picture然後打開它以使用應用程式從保存的位置查看圖像。


建立一個 4x4 像素正方形,其中包含 4 個不同的 1 像素彩色正方形

打開並從空白圖像開始。 。 。

  1. Home選項卡中按Resize選項
  2. 在裡面Resize and Skew視窗調整Horizontal and Vertical經過Pixes 在此輸入影像描述
  3. 隨著Pencil 在此輸入影像描述工具,您可以將顏色變更為您想要的顏色,然後用 4 個不同顏色的 1 像素方塊填滿 4x4 像素方塊。 在此輸入影像描述
  4. 現在去File | Save As | PNG Picture然後打開它以使用應用程式從保存的位置查看圖像。

答案4

實際上文件不僅僅是資料的容器。它們是二進位資料流。每種文件類型對於二進位流的哪些部分是哪些資料有不同的佈局。

在記事本中開啟圖像將使二進位流被解釋為人類語言中的字元。但是,我們不會使用與我們定義的特定語音語言中的字元相對應的二進位來製作檔案。因此,記事本可能會也可能不會對二進位流進行任何有用的解釋,以便能夠新增和刪除 PNG 解釋器可識別的資料。

如果您確實對如何從無到有創建PNG 檔案感到好奇,則必須使用數字(最好是二進位或十六進位),使用十六進位編輯程式從磁碟讀取二進位串流並以16 為基數顯示它你。

請參見大衛波斯蒂爾的回答

相關內容