png由于fireworks生成的数再进一步处理,还原出来的数据还要计算下

这两天查遍了互联网,和无数次生成数据手工计算还原,希望找到个规律

从一篇提示想到手工猜测,我用php写了一个模板,枚举了很多种算法。直接显示结果

如果能还原出来跟fireworks看到的值一样说明民成功的。

这里有一个仁兄提问,他说是位运算

我后来发现是加减运算

http://tieba.baidu.com/f?kz=859640399

01 就是后面一个RGBA加上前边一个RGBA

02 就是下面原始数据加上上面解码出来的RGBA

04 在下面有说明

03 是前边一个字节加上上边对应一个字节然后除2 然后加上本字节 比如(前R+上R)/2+R(本字节R)

这个适合真彩情况,window画图生成的png并没有编码,直接放RRGGBBAA

我推理了一天才发现03这种情况 所以如果png IDAT 遇到真彩解码或编码问题可以多试下

行头为04数据格式

00

C

B

04

A

X

Type byte

Filter name

Predicted value

0

None

Zero (so that the raw byte value passes through unaltered)

1

Sub

Byte A (to the left)

2

Up

Byte B (above)

3

Average

Mean of bytes A and B, rounded down

4

Paeth

A, B, or C, whichever is closest to p = A + B − C

Table 1. Predictor states used for differential encoding in the PNG image format.

The Paeth filter computes a simple linear function of the three neighboring pixels (a, b, c), then

chooses as predictor the neighboring pixel closest to the computed value as defined by the

following pseudo-code:

// Input: color values a,b, and c as illustrated in Figure 3

// a = left, b = above, c = upper left

// Output: a paeth-prediction for a,b, and c

04方式求出X的伪代码

paeth_predict(a,b,c)

p := a+b-c

pa := abs(p-a)

pb := abs(p-b)

pc := abs(p-c)

IF (pa<=pb AND pa<=pc) p := a

ELSE IF (pb <= pc) p := b

ELSE p := c

paeth_predict := p

Compression of a pixel value x dependent on its neighbors a,b, and c works by calculating

compressed(x) = x - paeth_predict(a,b,c)

and decompression works by reversing the formula to

uncompressed(x) = compressed(x) + paeth_predict(a,b,c).

http://en.wikipedia.org/wiki/Portable_Network_Graphics

http://ngs.ics.uci.edu/teaching/winter2011/Multimedia/textbook/MM_Chapter_lossycomp_100220.pdf

具体看下面这里

http://www.w3.org/TR/PNG/#9Filters

android png idat 还原,png IDAT数据块还原问题相关推荐

  1. 【Android 逆向】使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )

    文章目录 一.从 Android 应用数据目录中拷贝 SQlite3 数据库文件 二.使用 DB Browser 工具打开 SQlite3 数据库文件 一.从 Android 应用数据目录中拷贝 SQ ...

  2. Android系统镜像备份与还原并转发数据

    你拿到一台测试机,觉得系统不错挺好用,想要把里面的镜像拷贝出来,然后买一台新手机刷入进去.然后屏蔽原来系统的数据转发并把数据转发到自己的服务器上,有没有可能呢?答案是有的,这篇文章说的就是这方面的内容 ...

  3. 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )

    文章目录 图形文件准备 ( PNG 文件 ) PNG 文件信息分类 数据块结构 IHDR 数据块 简介 IHDR 数据块 结构 图形文件准备 ( PNG 文件 ) 分析的文件准备 : 1.创建文件 : ...

  4. PNG文件编码解析之PNG文件格式中的所有数据块以及标识

    图片版 文字版 数据块    十进制          十六进制 cHRM      99 72 82 77    63 48  52 4D gAMA     103 65 77 65    67 4 ...

  5. Android学习笔记44:JSON数据解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  6. Oracle 数据块损坏与恢复具体解释

    1.什么是块损坏: 所谓损坏的数据块,是指块没有採用可识别的 Oracle 格式,或者其内容在内部不一致. 通常情况下,损坏是由硬件故障或操作系统问题引起的.Oracle 数据库将损坏的块标识为&qu ...

  7. 解析oracle的dump文件,读懂数据块dump文件信息

    尊重作者著作,转自http://blog.csdn.net/guoyjoe/article/details/8567076 -------------------------------------- ...

  8. MongoDB数据备份还原,及docker中MongoDB备份还原

    一: MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据.该命令可以导出所有数据到指定目录中. mongodump命令可以通过参数指定导出的数据量级转存的 ...

  9. 关于 RMAN 备份 数据块 一致性的讨论

    今天和 杭州恒生 的一个朋友讨论一个RMAN 在备份时数据块一致性的问题. 关于RMAN 的备份原理参考blog: RMAN 系列(一)---- RMAN 体系结构概述 http://blog.csd ...

最新文章

  1. hashmap实现原理_Java中HashMap底层实现原理(JDK1.8)源码分析
  2. 降Mail十八章(上)
  3. java创建solr core_Solr定义core.properties
  4. angular 代码高亮_angular 搜索/查找关键字高亮
  5. mysql 5.6 分区_Mysql5.6—分区表及独享表空间
  6. 【渝粤教育】 国家开放大学2020年春季 2772家畜环境卫生与设施 参考试题
  7. http协议与web本质
  8. Java架构师知识体系汇总
  9. 高性能微服务 Dubbo RPC Redis 分布式框架
  10. linux下mysql安装、目录结构、配置
  11. arrive 和reach 的区别
  12. bp matlab预测结果差,BP神经网络 预测 精度差
  13. 基于51单片机的GPS公交自动报站系统
  14. jQuery的ajax教程
  15. 科目二 侧方位停车 流程记录 LTS
  16. spring 自动装配 bean 有哪些方式?
  17. kubectl命令的使用、滚动更新
  18. 视频演示-Snapper快捷优秀的音频预览播放器演示
  19. 计算机待机时间长黑屏怎么办,电脑黑屏?如何解决?
  20. 高清卫星影像DEM各个遥感卫星数据免费下载,3款软件4个网站推荐给你,从此不再为数据发愁

热门文章

  1. vs2015+TortoiseSVN安装教程
  2. H5 移动端 测试方法
  3. Fisher线性判别分析原理解析及其Python程序实现两例
  4. 如何恢复vscode的默认配置_VS Code使用之基本设置与配置详解
  5. 报错: Ambiguous method call. Both
  6. BUUCTF RE reverse2
  7. oracle 19c驱动和18c的区别,什么是Oracle 18c的版本号?(What is the version number of Oracle 18c?)...
  8. 讲座回顾丨超融合智能边缘平台
  9. 倍福--数据类型变化
  10. prolog应用:解决爱因斯坦“斑马”问题