如何使用记事本创建PNG图像?[关闭]


-6

众所周知,所有文件都只是数据的容器。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文件是什么?
Pimp Juice IT


2
A PNG file basically just refers to a rectangular grid of colored pixels, so it can't be that complicatedpng是一种压缩格式,压缩文件从不简单
phuclv 2017年

2
记住“测试”和“二进制”数据之间的差异非常重要...记事本不能忠实地表示或处理“二进制”数据。
Attie

4
首先,你广泛宣称这一点,“一个PNG文件基本上只是指一个彩色像素的矩形网格......”然后你说明,“澄清一下,问题不是如何创建任何PNG文件,而是如何使用文本创建一个符合某些标准的PNG文件,例如,彩虹的7种颜色的线?“你在哪里得到记事本 - 文本编辑器 - 可以简单地创建二进制数据的想法?“纯文本”不仅仅是文本。这里过于简单化的程度是无法言喻的。如果您认为数据以纯文本开头/结尾,那么您已经遇到了大量的概念问题。
杰克古尔德

Answers:


6

如何使用记事本从零开始创建PNG?

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

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

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

137 80 78 71 13 10 26 10

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

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

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

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


PGP签名?你是指魔术头?
Attie

3

只需按一次Windows Flag键打开Paint在此输入图像描述,然后开始输入Paint; 一旦它从菜单中弹出,只需单击它即可启动应用程序。

在此输入图像描述

现在打开一个空白的绘画屏幕,您可以根据需要创建颜色填充的方块等,然后当您准备将其保存为PNG文件时,您只需转到 File | Save As | PNG Picture然后打开它以使用保存位置的应用程序查看图像。


使用4个不同的1像素彩色方块创建一个4x4像素的正方形

随着涂料打开一个空白图像开始。。。

  1. Home选项卡中按Resize选项
  2. Resize and Skew窗口调整Horizontal and Vertical通过Pixes 在此输入图像描述
  3. 使用该工具,您可以将颜色更改为所需的颜色,然后使用4个不同颜色的1像素正方形填充4x4像素正方形。 Pencil 在此输入图像描述在此输入图像描述
  4. 现在去File | Save As | PNG Picture然后打开它以使用保存位置的应用程序查看图像。

谢谢你回答这个问题!我已经更新了这个问题,请查看更新后的文字。
Code Whisperer

可悲的是,这根本不是什么问题,它没有提供合成新PNG的任何信息
Code Whisperer 2017年

0

实际上,文件不仅仅是数据的容器。它们是二进制数据流。每种文件类型都有不同的布局,二进制流的哪些部分是什么数据。

在记事本中打开图像将导致二进制流被解释为人类语言中的字符。但是,我们不会使用与我们定义为特定语言语言中的字符相对应的二进制文件。因此,记事本可能会或可能不会对二进制流有任何有用的解释,以便能够添加和删除PNG解释器可识别的数据。

如果你真的好奇如何从零开始创建PNG文件,你必须使用数字(最好是二进制或十六进制),使用十六进制编辑器程序从磁盘读取二进制流并将其显示在基数16中您。

请参阅DavidPostill的回答


如果我误用了二进制流,它实际上是一个字节流可能有人请编辑我的问题
CausingUnderflowsEverywhere 2017年

0

这是一个简单的png图像的“文本”

在此输入图像描述

这些数据来自下面的简单图片。

在此输入图像描述

因此,除非您使用的文本编辑器可以处理特殊字符而不破坏元数据(如记事本++),因此无法仅通过将“文本”放入文档来创建PNG图像文件。您实际上也无法为png文件键入“代码”,因为它的“语法”对于任何类型的键盘来说都太复杂了。

以下是您尝试时会发生的情况: 在此输入图像描述


您是否尝试过复制并粘贴您发现在记事本中打开图片的“东西”,并将其放入新的记事本文件中,另存为png?
导致UnderflowsEverywhere 2017年

它不像那样工作。正如我所说,记事本无法处理PNG文件中的字符编码。您必须使用像Notepad ++(notepad-plus-plus.org)这样的文本编辑器,即使这样,您也只能复制/粘贴,因为您无法“键入”图像文件。
Ulincsys 2017年

我添加了一张图片来演示。
Ulincsys 2017年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.