如何仅使用记事本创建 PNG 图像?

Cod*_*rer -5 png notepad

众所周知,所有文件都只是数据的容器。PNG文件也不例外。

PNG 文件基本上只是指一个由彩色像素组成的矩形网格,所以它不可能那么复杂——当然不像视频甚至 GIF 那样复杂。

我的问题是,如何仅使用记事本从无到有创建 PNG?然后可以在将其识别为图像的浏览器(例如 Chrome)中打开该文件。

一个由四个彩色像素组成的小方块就是一个很好的例子。

使用 Paint 尝试查看会发生什么会产生有趣的结果。

如果使用 Paint 创建一个看起来像这样的 PNG 文件,(它非常小,2x2 像素,因此您可能需要放大)

在此处输入图片说明

生成的文本文件如下所示:

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

但幕后发生了什么?

澄清一下,问题不是如何创建任何 PNG 文件,而是如何使用文本创建符合某些条件的 PNG 文件,例如一行 7 种颜色的彩虹?

Dav*_*ill 6

如何仅使用记事本从无到有创建 PNG?

好容易。使用十六进制编辑器会更容易(但仍然很困难)。

本质上,您必须以与PNG 规范相匹配的格式创建文件。

文件头必须以 PNG 签名开头,该签名由以下十进制值组成:

137 80 78 71 13 10 26 10
Run Code Online (Sandbox Code Playgroud)

不能使用记事本输入十进制 10(换行符)(因此建议使用十六进制编辑器)来创建文件。

您还需要能够计算 CRC 值并遵循许多复杂的块排序规则。

如果您阅读上面链接的规范,您将看到手动创建 PNG 是多么复杂。

使用支持 PNG 的图形编辑器会容易得多。