文件损坏很有吸引力

2020-10-07 08:14:15

我们生活在一个逐渐不断地被过度理性和秩序所吸引的世界。在这篇文章中,我们将打破迷人的泡沫,拥抱腐败和混乱-我们将讨论图像故障艺术的主题。

W̸h̸a̷t̴‘̶s̴̶a̴̷g̷l̸i̷t̴c̵h̵。

欢迎来到创造性破坏之地:图像故障艺术。我们的故事从一个简单的想法开始:在墙纸上出现故障,制作一张损坏图片的幻灯片。我们罪行的不幸受害者:世界(在按住Ctrl键的同时右键单击Viewimage,可以在它仍处于原始状态时欣赏它的更多细节):

在我们开始之前,让我们先来定义一下我们要做的事情:什么是毛刺艺术?就像任何艺术运动一样,文字几乎不能表达意义背后的本质,它们只是昙花一现,模糊不清。不管怎样,我会是一个异教徒,勇敢地表达我认为的毛刺艺术是什么。

毛刺是一种扰动,一个小故障,一个假信号。在计算机中,故障主要是意外事件,是不受欢迎的,可能会损坏数据。小故障艺术开始于人们对这种不同寻常的事件的喜爱,以及小故障对他们所扰乱的媒体的影响。一些人开始收集这些在野外自然发生的故障,另一些人则开始故意通过手动操作来利用效果。在艺术领域,一些人开始使用图像处理来“伪造”拼图效果。

故障无时无刻不在发生,信息永远不会像我们所希望的那样持久和可靠,而生活在物理世界中会让它变得更不持久和可靠。你可能已经遇到或听说过在任何电子产品旁边放置一块磁铁的效果,而这些电子产品还没有被加固到可以承受这种情况的地步。这就是为什么许多技术已经到位,以避免从硬件存储到软件读取和解释的所有层的故障。无论是纠错码(ECC)还是错误检测算法,它们都是毛刺艺术和我们喜欢的混乱的敌人。

然而,对于电脑迷来说,这种利基美学不仅仅是一种有趣的消遣,还有一幅更大的图景。类似于画家在画布上使用画笔,我们被提供了一种材料,一种可以使用的对象-一种由比特制成并以特定方式格式化的材料。就像任何物体一样,我们的媒介有形式和意义,它可以移动,它有大小,它可以被传递和解释--信息理论是对此感兴趣的领域。就像任何物体一样,我们的媒介可以受制于变形、力和压力源,并对其做出反应。它是如何流动的,这是流变学领域感兴趣的(不要与计算流变学混淆,计算流变学是流体模拟领域)。研究介质的流动性可以回答这样的问题:介质是弹性的、固体的、粘性的还是油性的,在信息论的约束下,它对不同类型的作用力有何反应。

错误配准:每当物理介质因划痕、污垢、污点、伽马射线或任何其他珍宝造成损坏而误读数据时,宇宙就会向我们扔来。

Datamoshing,Photomosh,Imagemosh:滥用介质的格式,通常是压缩人工制品,以制造毛刺。例如,视频压缩通常对固定图像使用I帧,对该图像上的像素移动/过渡使用P帧。删除I帧是一种常见的毛刺方法。

数据库:取自电路弯曲的想法,弯曲玩具的电路板以产生奇怪的声音。数据库就是将媒介弯曲成另一个不相关的媒介,把它重新解释为不该是的东西。

让我补充一句,毛刺艺术是巨大而迷人的,这篇文章只是进入这个空间的启蒙。如果你和我一样着迷,请看看gli.tc和罗莎·门克曼(Rosa Menkman)的“碧昂斯解决方案”(BeyondResolution)。为了创作杰作,图像可以通过多种方式被愉快地破坏。

I̷m̷a̷g̴e̴̸G̸l̴i̴t̴c̵h̸̴A̶r̵t̵。

̷H̷o̵w̶̵T̸o̴̶i̷n̶d̸u̷c̶e̵̶A̸̶G̸l̵i̷t̶c̸h̴。

现在是时候考虑我们如何应用我们恶作剧的小估计了,它的大小,它将被应用的层次或层次,以及我们将炮制的毒害我们的图像的方法食谱。

编辑不正确:编辑文件时使用的软件不是用来编辑此类文件的。就像编辑图像文件一样,就好像它是文本文件一样。

重新解释,也就是数据库结尾:转换或读取一个文件,就像它是另一种媒体一样。就像收听图像文件一样,就像它是音频文件一样(也就是发声)。

强制错误、数据传输和错误注册:强制文件中出现特定错误的软件或硬件错误。这可能是因为文件中特定字节的损坏导致了故障,也可能是意外发生的事情,比如保存文件时设备关闭。

M̷a̵s̵h̸I̶n̶g̷̴T̶h̷e̷̷D̶a̸t̵a̸̸R̷a̸n̶d̶o̸m̴l̵y̷。

最简单但也是最粗暴的文件故障方法是穿上我们的套装,覆盖或添加图像中的随机字节。正如您可能已经了解到的,这并不是非常有效,但是有一半的时间它会起到欺骗和强迫错误的作用。

此技术更适用于更强的材料,如原始格式的图像-没有元数据和标题。我们一会儿就会明白原因。要将文件转换为RAW格式,请在GIMP中打开它,选择导出为,按扩展名选择文件,然后选择RAW类型。现在,你是选择像素顺序的还是平面的并不重要,但我们稍后会回到这个选择上,因为这是一个重要的选择。

File world_map.data#world_map.data:Targa图像数据-Map(771-3)771 x 259 x 1-1位alpha";\003\003\003\003\003\003\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001。\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001。\001\001\001\001\001\001";

您还应该注意图像的宽度和高度,因为它现在不再包含这些信息,我们需要它们才能在GIMP中重新打开它。在我们的情况下,它是2000x1479。

我们现在把文件交给我们最不喜欢的人,让他们对此大发雷霆。那么到底是什么样子,让我们来看看我们的猴子做的结果:

C̸o̶m̸p̷r̶e̷s̸s̵i̸o̶n̴̶D̵e̵f̶o̶r̴m̷a̶t̷i̵o̸n̷

有些介质在适当挤压并以不同方式挤压时更具延展性。这张照片透露了很多信息,只有精华留了下来。这是数据库的一种形式。例如,增加JPEG图像的压缩可以为更频繁地发生毛刺打开通道。这是一项关键资产,尤其是在试图在文件格式中创建与压缩参数相关的错误时。

G̵e̴t̵t̶i̸n̵g̷̴I̸n̵t̷I̵m̷a̴t̸e̴̸W̶I̵t̸h̶̴T̵h̸e̸̴e̸̴F̷o̴r̶m̸a̴t̷。

我们希望以最有效的方式腐败,从最小的变化中创造出吸引人的混乱。要做到这一点,我们必须与媒介亲密接触,了解其最深的秘密,在正确的地方取悦图像。这就是我们之前所说的想象表情。

图像格式五花八门,而且它们都有各自的独特之处。然而,仍然有一些共性:

页眉、页脚和元数据:如果格式包含这些外部信息,不管是无关的还是重要的,它们表示什么,以及它们如何影响图像的其余部分。

压缩:格式可以压缩,也可以不压缩。当它被压缩时,可以有额外的信息位来帮助其他软件解压缩图像数据。

数据布局方式:通常,图像颜色信息被分解成其组成部分,如HSL、RGB或其他。然后需要以交错或平面方式在图像数据中表示这些组件。平面是指在数据中独立地写入组件(例如:全部R,然后是全部G,然后是全部B),而交错是指以交替顺序非连续地连接它们(例如:RGB,然后是RGB,然后是RGB.)。

为了我们的利益而操纵这些可能会导致奇妙的故障。例如,在我们之前的原始图像示例中-没有页眉、页脚和未压缩的图像-像素是交错的,这导致了我们所看到的效果,即某些颜色的移动和变化。如果它们是平面的,那么在不同的颜色通道中会出现不同的故障。

R̵e̷i̷n̴t̶e̷r̶p̸r̴e̸t̸a̷t̶I̷o̵n̴̵A̸s̵̵R̸I̷c̵h̸̸T̷e̵x̵t̴̴A̴K̷A̸̷W̶o̴r̵d̴P̴a̸d̵̷E̵f̸f̵̷e̵̷c̵̷t̵̷。

让我们用众所周知的写字板效果来试一试,这个效果是关于将图像数据库转换成富文本:在写字板中打开图像并保存它。请记住,这只适用于原始图像,因为它具有很强的破坏性,否则可能会破坏页眉和页脚中脆弱的关键信息。因此,让我们重新使用前面交错的原始图像,但也要获得一个平面图像。

从技术上讲,在弯曲和解释为富文本的过程中,一些字节被插入到一些地方,而另一些字节被替换。也就是说,需要考虑回车符(0x0D aka\r)和换行符(0x0Aaka\n)关联,因此如果缺少一个,则WordPad会添加它。它还替换其他字符,如0x07 AKA\bY 0x20 AKA空格,但该替换不会对图像产生太大影响。你可以在这里找到一个模拟这种弯曲的代码。

R̸e̵i̶n̴t̵e̷r̴p̶r̷e̵t̶a̷t̴I̶o̴n̴̶A̵s̷̷A̸u̵d̴I̷o̵̴A̴K̶A̴̶S̸o̸n̵I̷f̴I̸c̷a̸t̴i̵o̴n̴。

另一个流行的数据库是可听化,它是关于将非音频信息转换成听觉信息-这对视障人士非常有用。在我们的示例中,我们将使用图像作为音频内容,像编辑声音一样对其进行编辑,然后再次将其可视化为图像。同样,与大多数数据库绑定一样,除了未压缩的原始格式之外,几乎不可能使用任何其他格式,所以我希望您没有丢弃上一节中的两个原始格式。

我们将选择Audacity作为我们的音频编辑器。启动它,选择:文件&>导入&>原始数据。然后选择您的平面或交错ImageData,您将看到此屏幕:

别惊慌失措!您选择什么并不重要,但就我而言,使用U-law或A-law、Big-Endian字节方向和单声道等编码可以获得更好的结果。编辑完成后,转到文件菜单>;导出>;导出音频。然后选择右下角的“其他未压缩文件”,然后选择未压缩的原始标题,以及您之前在导入文件时选择的编码(注意,添加扩展名.Data可以更容易地在GIMP中打开)。不要在要求元数据的下一个屏幕上填写任何内容。

现在,您可以在图像的不同部分应用不同类型的音频过滤器。这里有一些我最喜欢的歌曲的例子。

总体而言,大多数音频效果在交错格式和平面格式下都工作得很好。其中一个在压缩介质上实际有效的方法是剪切粘贴并反转,因为它不像其他技术那样具有破坏性,我们将在下一节尝试一下。

C̵a̵s̸e̸̷S̸t̴u̵d̷y̸:̷̵J̵P̸E̶G̷。

让我们来了解一下最流行的压缩图像格式之一:JPEG。我们会剥离它的层次,将它们分开,变得更加亲密,并理解它最深的感受。

与大多数二进制格式一样,JPEG由TLV段Type-Length-Value组成,顾名思义,它具有定义良好的type标记,后跟将与标记关联的值的长度(加上长度本身的长度,在JPEG情况下为2)。JPEG格式标准中的所有标签(您可以在进一步阅读部分找到多个链接)都是2字节长,并且总是以0xFF开始。JPEG有一个定义明确的标题,以适当命名的“图像开始”或SOI标记(0xFFD8)开始,以适当命名的“图像结束”或EOI标记(0xFFD9)结束。

任何以0xFF开头的内容如果不在另一个标记的值部分内,则被认为是标记。有一个例外:当涉及到图像的实际内容时,熵编码段(ECS),因为它没有固定的大小,但会一直读取,直到找到另一个标签。这就是为什么如果0xFF需要包含在它里面,它会在后面填满0x00,以知道它实际上是0xFF。

具体地说,JPEG由规定如何解压缩图像数据的报头形成。然后在一系列循环/扫描中找到这些数据,每个循环/扫描都编码关于图像的不同类型的信息,无论是灯光、红色还是其他。此循环如下所示:

熵编码段(Entropy code Segment,ECS)的名称来源于这样一个事实,即它是编码的,通常使用霍夫曼表进行压缩。由于JPEG可以包含不同的表格来压缩不同的颜色分量,因此表格本身必须由ECS到来之前读取的信息指向,即扫描或SOS部分的开始(在上图中为“扫描”)。所以循环的每一次迭代都告诉我们如何解码ECS中的信息。

这就是它的要旨,我们并不真正关心准确地理解JPEG规范的全部范围,但只要足够危险就行了。让我们编写一个脚本来拆分JPEG的组件,这样我们就可以独立地操作它们,然后重新组合并欣赏结果。您可以在这里找到这样的脚本。

这些是我在世界上运行脚本后得到的部分-我们分而治之。

树-L 1.├──01_Header.jpg├──02_scan.jpg├──03_data.jpg├──04_scan.jpg├──05_data.jpg├──06_scan.jpg├──07_data.jpg├──08_scan.jpg├──09_data.jpg└──10_end.jpg0目录,10个文件。

我们肯定可以再雇一只猴子把图像的数据部分弄乱,把它的内部结构搞得一团糟。然而,JPEG对变化有点敏感。不过,您仍然可以获得相当不错的结果,这就是当我们尝试09_data.jpg和03_data.jpg时会发生的情况。我们可以通过以下方式找回我们的形象:

让我们看看我们是否可以对ECS数据使用剪切-粘贴-反转,就像我们对原始图像进行发声所做的那样。让我们拿到干净的版本,大胆地打开它。

剪切和粘贴肯定是有效的,但是大多数情况下反转是无效的,并且数据是非常合理的。

每个部分都会影响图像的不同特征。上述故障是由编辑03_data.jpg和09_data.jpg引起的。如果我们想知道每一次扫描给图像增加了什么,我们可以通过删除其他扫描或在早期插入图像末尾来实现快捷方式。这是每个JPEG层执行的操作:

有趣的是,注意到第一层是最五颜六色的,但是最小,而最后一层是最大的,但是有更多的细节和更少的颜色。

现在我们已经准备好深入研究并处理图像的标题部分,启动十六进制编辑器并做好准备。我不会用细节打扰您,但归根结底就是要编辑标题中的特定部分。让我们举例说明一下。

量化表和霍夫曼表中的最高有效位比最低有效位具有更大的权重。这来自于它们的布局方式,量化是之字形的,而哈夫曼是以树的形式编码的,两者都是按重要性排序的。还要注意的是,每个霍夫曼表和量化表都用于图像的不同部分,我们在上面显示了这些部分。

在标题中有3个量化表0xFFDB,让我们编辑其中一个,看看它有什么作用。在我们的图像中,它们似乎都是为了亮度。编辑第三个量化表中的单个字节会导致以下结果-单个位翻转会导致真正的毛刺:

如何操作3个霍夫曼表0xFFC4中的一个,这有点棘手但可行,我们只需编辑其中的符号,17B在长度标签之后。让我们在开始时交换其中的两个符号。

影响的危害性较小,几乎不明显,因为最不显著的变化在表的末尾,由更多的位表示。

在Scan aka SOS部分0xFFDA的开头,我们可以操作图像扫描的每个部分指向哪个霍夫曼表,而不是操作标题中的霍夫曼表。这一节编码了许多有趣的东西,不仅应该使用哪个哈夫曼表,而且应该使用它们的用途,DCT中的值的效率,第一个和最后一个系数的使用,等等。因为第一部分更加丰富多彩,让我们使用它的SOS,在您最喜欢的十六进制编辑器中打开02_scan.jpg。

我们可以看到有3个分量,这意味着ECS中的字节将编码3个不同的颜色分量,并使用DC和AC的两个不同的表来构建每个分量,这是DCT表的两个不同的系数。不管怎样,让我们更改表号,很明显,这会使文件出现故障。

我们还可以通过修改SOS的最后一个字节来改变这些因素的应用方式,连续近似,结果令人眼花缭乱。

我们还可以编辑频谱选择,这是在Z字形顺序中使用的第一个也是最后一个DCT系数。效果取决于它应用到的段,下面对第二个和第三个数据段执行了以下操作。

这就是我们对JPEG格式的破坏性热爱,现在让我们转移到其他事情上。

I̴m̷a̷g̴e̵̶P̸r̷o̷c̸e̷s̵s̸i̴n̵g̵。

如果你胆敢在小故障艺术界提到图像处理,你会给自己带来地狱。这将被称为看起来有故障的艺术,艺术故障而不是故障艺术。从技术上讲,通过图像处理算法将像素组件存储在原始图像表单中与操作内存中的像素没有太大区别。然而,我同意艺术的灵魂和本质将会缺失。同时,我们用JPEG做的图像表情处理更接近于毛刺艺术的真谛。你会问“谁在乎,谁会知道区别”,Welli会,我会和我邪恶的数据采集猴子一起看着你。

通过使用Python枕头等图像操作库,并操作图像的颜色分量使其看起来有故障,从而实现看起来像是毛刺的图像处理。如果这听起来与原始图像相似,那是因为它确实如此。

让我们来提一些我觉得有趣的技巧。让我们从像素排序开始。像素排序是选择符合特定标准的像素,将它们聚集到一个数组中,并根据相同的标准对它们进行排序。您可以水平、垂直或在块中应用它。你可以根据亮度、暗度、色调或任何适合你的颜色来涂抹。在这里,您将找到一个执行此操作的脚本,结果如下所示:

另一种技术称为通道移位。它是关于将每个颜色分量存储在不同的数组中,并将它们在X或Y轴上移位。这不会让你想起平面原始图像吗?当然,因为这是同样的技术!

这个网站展示了很多图像处理效果,但是效果并不总是像真正的小故障那样吸引人。是的,我们现在是真正的业余爱好者了!

我们甚至可以通过使用imagemagick对它们进行叠加/合成来混合它们。

A̸n̵i̷m̶a̷t̴e̵d̶̵W̸a̷l̴l̷p̵a̴p̵e̶r̸。

我测试了不同的方法,从gifview到mplayer,我找到的Bestway是最简单的方法:一个基本的脚本,在图像中循环,睡眠,并将它们设置为墙纸。脚本可以在这里找到。

C̸o̶n̶c̶l̵u̴s̷i̸o̶n̷。

恭喜你,你知道足够多的腐败,足以开始从政生涯!等你有钱了你会感谢我的。现在去享受你学到的东西,享受你的一天吧。

如果你想进行更深入的讨论,我随时可以通过电子邮件或电子邮件联系到你。我们可以就你喜欢什么、不喜欢什么、需要考虑的新想法、意见等进行讨论和争论。如果你不想。

.