如何仅使用记事本创建 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 进制显示它。

请参见DavidPostill 的回答

相关内容