`
lisanping
  • 浏览: 145282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PNG图片的背后

    博客分类:
  • JAVA
阅读更多
最近在做一个韩国LG的外包项目,在图片资源处理的时候发现一个有趣的做法.


有谁知道这张图片真正包含多少张图片?
初看只有一张,其实错了,它整整包含了14张图片,像:

等等.

现在我们来回顾一下PNG图片的结构:
1.PNG的文件结构
引用内容 引用内容
PNG文件标志    PNG数据块    ……    PNG数据块


PNG文件标志是8 byte的,其中第一个字节0x89超出了ASCII字符的范围,这是为了避免某些软件将PNG文件当作文本文件来处理。
2.PNG文件标志
十进制数    137   80   78   71   13   10   26   10
十六进制数    89    50   4E   47   0D   0A   1A   0A

3.PNG数据块包括:
IHDR       文件头数据块      第一块
PLTE       调色板数据块      在IDAT之前
IDAT       图像数据块        与其他IDAT连续
IEND       图像结束数据    最后一个数据块

如果我们仔细观察PNG文件,我们会发现,文件的结尾12个字符看起来总应该是这样的: 00 00 00 00 49 45 4E 44 AE 42 60 82
不难明白,由于数据块结构的定义,IEND数据块的长度总是0(00 00 00 00,除非人为加入信息),数据标识总是IEND(49 45 4E 44),因此,CRC码也总是AE 42 60 82。

好了,回归主题,一般我们处理PNG图片的常用办法是把它打包成pak,bin等形式。

然后这个游戏并没有这么做,而是把其它图片的数据直接copy到第一张图片的背后,由于PNG图片允许出现多个PNG文件头、文件尾,但它被查看的时候只显示第一张图片(有利于信息的隐藏,防盗版?)。



上图选定的地方就是第一张图片,而它后面还隐含其它13张图片的信息。
分享到:
评论

相关推荐

    CTF神器:自动爆破PNG图片宽高并一键修复工具

    在CTF(Capture The Flag)比赛中,Web解题部分经常会出现一些创新的挑战,其中一种是隐藏信息在看似普通的PNG图片中。这类题目通常需要参赛者挖掘图片的元数据或者利用图片格式的特殊性来发现隐藏的“Flag”。标题...

    一个可以加载png图片的控件源码

    本篇将深入探讨如何在VB中实现一个可以加载PNG图片的控件,以及这个控件源码背后的技术细节。 PNG图片的加载主要涉及到图像处理和图形用户界面(GUI)的交互。VB提供了一些基本的图形功能,但原生的支持并不包括...

    png 图标转成ico图标工具

    将PNG图标转换为ICO格式,主要是因为ICO文件能够直接用作程序或网站的图标,便于用户识别和操作。这个过程涉及到图像处理和格式转换的知识,通常需要借助特定的工具来完成。 "png转ico工具"是一款专门用于将PNG图像...

    png图片压缩加密工具binCompiler

    在处理大量PNG图片时,大小优化和安全加密是两个重要的考虑因素,这正是"png图片压缩加密工具binCompiler"的核心功能。 binCompiler是一个专为PNG图像设计的实用工具,它能够对PNG文件进行高效的压缩,以减小文件...

    png图片在ie6透明代码

    ### PNG图片在IE6中的透明显示技术解析 在Web开发的历史长河中,Internet Explorer 6(简称IE6)曾是一道独特的风景线。由于其市场占有率极高且生命周期漫长,直至2010年代初,许多网站仍需考虑对IE6的兼容性支持。...

    pdf2png.zip

    5. **图像大小调整**:在转换过程中,可能会有需求调整生成PNG图片的尺寸。这可以通过设置图像的宽度和高度来实现,或者使用图像缩放算法来保持原始比例。 6. **图像分辨率设置**:分辨率决定了图像的清晰度。在...

    ImageAlpha 1.3.5 PNG Quant有损压缩

    **PNG图片压缩技术详解** PNG(Portable Network Graphics)是一种无损压缩的图像文件格式,广泛应用于网页设计、软件开发和移动应用中。然而,PNG图片因其高质量和无损特性,通常会产生较大的文件尺寸,这对于网络...

    png压缩软件

    然而,原始PNG图片往往占用大量存储空间,这就需要专门的PNG压缩软件来解决这个问题。 PngGauntlet.exe是这个压缩软件的主程序,它可能采用先进的算法来重新编码PNG图像,去除不必要的元数据,并优化颜色表,从而...

    手机QQ聊天气泡.9.png图片

    综上所述,`.9.png`图片在手机QQ聊天气泡中的应用展示了Android UI设计的灵活性和可扩展性,同时也揭示了即时通讯应用背后的复杂技术架构。对于开发者来说,理解和掌握这些知识点是构建高质量、用户体验优秀的IM应用...

    ImageBatchChange_C#_png转jpg_time5xe_

    在本文中,我们将深入探讨如何使用C#编程语言进行图片格式的批量转换,特别是从PNG转换为JPG。"ImageBatchChange_C#_png转jpg_time5xe_"项目提供了一个实用的解决方案,允许用户一次性处理多张图片,将它们转换为BMP...

    魔兽世界图标大全.zip

    每一个图标背后都可能有一个故事,承载着玩家在游戏中的记忆和体验。对于想要深入研究魔兽世界世界观或是进行游戏设计的人来说,这样的图标大全无疑是宝贵的参考资料。同时,这些图标也可以被用作桌面壁纸、社交媒体...

    电子纸模块的实用工具。它可以将任何 jpg、bmp 或 png 转换为二进制或十六进制数组_JavaScript_代码_下载

    它可以将任何 jpg、bmp 或 png 转换为二进制、十六进制数组或直接转换为带有标题的完全可用的 cpp 文件。 它是如何工作的? 我专门为我的 2.9" WaveShare 的电子纸模块制作了这个工具。此显示无法处理普通图像数据...

    rightmix.png

    标题“rightmix.png”可能指的是一个图形或图标文件,它在IT上下文中通常用于表示某种功能、状态或者作为用户界面的一部分。在这个特定情况下,由于没有给出详细的描述,我们可以假设这可能是一个与软件应用或者Web...

    mnist 数据集转为 png 的 python代码,包含 mnist 数据集本身

    在本案例中,Python脚本被用来将这些图像数据从原始格式转换成PNG图片格式,这是一种广泛支持的图像文件格式,方便在各种环境中查看和处理。 描述中提到,这个代码配合博客中的详细讲解,对于学习Python编程特别是...

    HTML页面一键生成PNG图片

    3. **一键生成**:一键操作通常指的是软件或工具提供的一种简单快捷的功能,用户只需点击一次按钮,程序就能自动完成预设的任务,如在这个场景下,就是指生成PNG图片的过程无需复杂的步骤。 4. **指定网页元素**:...

    徐州师范大学校徽PNG格式

    徐州师范大学的校徽可能包含有学校的创办年份、校训、代表性建筑或图标等元素,这些元素背后都蕴含着学校的历史沿革和教育理念。因此,对校徽的设计、使用和传播,都是学校品牌形象建设和文化传承的重要一环。 总的...

    webkit2png:网页的png截图

    webkit2png是一款针对macOS操作系统的命令行工具,其主要功能是抓取网页的全貌并将其保存为PNG格式的图片。这个工具利用了WebKit渲染引擎的能力,WebKit是许多浏览器(如Safari和Chrome)背后的核心技术,能够准确地...

    python 将照片jpg/png识别转成excel,通过调用腾讯云接口,照片内容可手写,手画的表格

    在实际应用中,为了实现批量转换,`image_excel.py`可能包含了一个循环,遍历指定目录下的所有jpg/png图片,逐一进行识别并保存到Excel文件。此外,压缩包中包含的`照片转excel.exe`是将Python脚本打包成Windows可...

    【这个有问题。。】[jQuery] 解決 IE6 PNG 透明背景 (Supersleight jQuery Plugin for Transparent PNGs in IE6)

    这个插件的工作原理是通过JavaScript动态地在图片背后添加一个具有相同颜色的Div元素,然后调整Div的不透明度,从而模拟出PNG图片的透明效果。这种方法巧妙地避开了IE6对PNG透明度的支持问题。 使用Supersleight...

    最新最全Windows10系统图标

    了解这些图标背后的意义,有助于我们更好地理解和操作电脑,提高工作效率。同时,随着技术的发展,图标设计也在不断进化,以适应新的功能和用户需求。因此,持续关注并研究系统图标的变化,也是IT专业人士必备的知识...

Global site tag (gtag.js) - Google Analytics