PNG:deflate 和 zlib

2024-05-04

我试图理解 PNG 的压缩 - 但我似乎

网上查了很多自相矛盾的资料... 我想了解 - LZ77部分:带链表的哈希表中的搜索是如何完成的?这是在 deflate 中定义的吗?或者在zlib中实现?可以选择搜索方法吗? - PNG 编码器/解码器可以设置一些压缩参数(策略、过滤器等),或者 PNG 是否有默认值? - LZ77 部分是否进行贪婪或惰性评估?或者这也是一个选择吗? - 最后:两棵霍夫曼树,它们是否被压缩在第三棵树中,并且所有三棵树都被编码了?或者这两棵树仅用它们的代码长度进行编码?

zlib 实现与其他 deflate 实现不同吗?也许这就是我所有困惑的来源?

感谢您的任何帮助!!我的新工作需要这个

LuCu


PNG压缩是在zlib https://www.rfc-editor.org/rfc/rfc1950格式。 zlib 格式使用deflate https://www.rfc-editor.org/rfc/rfc1951。使用的代码通常是zlib库 http://zlib.net/.

格式未指定用于压缩的算法。 zlib 库 deflate 算法使用哈希链在滑动窗口中搜索匹配的字符串。 zlib 的 deflate 采用几个参数进行压缩调整 -- 请参阅deflateInit2() https://github.com/madler/zlib/blob/master/zlib.h#L527.

deflate 格式指定动态块前面的霍夫曼编码的压缩。文字/长度和距离代码代码长度是游程长度和霍夫曼编码本身。

放气压缩机还有其他实现LZMA SDK http://www.7-zip.org/sdk.html and 谷歌的zopfli https://code.google.com/p/zopfli/,这两种方法都使用更密集的方法,需要更多的时间才能获得较小的压缩收益。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PNG:deflate 和 zlib 的相关文章

  • 在 PyGTK 中,显示 PNG 文件的简单方法是什么?

    以下 PyGTK 代码在窗口中显示 PNG 文件 是否有更简单或更好的方式来显示 PNG 文件 例如使用 gtk DrawingArea 例如 如何调整文件大小 import gtk import pygtk pygtk require 2
  • php zlib:如何从字符串变量动态创建内存中的zip文件?

    这就是我需要的 a array folder gt anyfolder filename gt anyfilename filedata gt anyfiledata 我需要使用 a 中的压缩数据创建一个变量 zip 并将此 zip 输出到
  • 使用霍夫曼代码压缩文件的步骤

    我知道有很多涉及霍夫曼代码的问题 包括我自己的另一个问题 但我想知道实际编码文本文件的最佳方法是什么 减压看似微不足道 遍历树 在 0 处向左 在 1 处向右 打印字符 但是 如何进行压缩呢 以某种方式将字符的位表示存储在树的节点中 每次遇
  • 图像/png 响应的原始响应

    我收到一个带有原始响应的响应主体 它应该代表一个 png 图像 我的问题是如何解码它并使其可渲染 PS 当我使用邮递员来测试这个时 我意识到邮递员可以渲染这个原始字符串 我想知道它是如何做到的 PNG IHDR X PPHYs o d ID
  • 快速搜索压缩文本文件

    我需要能够在大量压缩文件 txt 中搜索文本 压缩可能会改变为其他东西 甚至成为专有的 我想避免解压所有文件并压缩 编码 搜索字符串并在压缩文件中搜索 这应该可以通过对所有文件使用相同的码本使用霍夫曼压缩来实现 我不想重新发明轮子 所以 任
  • 在 Delphi 2007 中将具有透明度的位图保存为 PNG

    我有一个包含透明度信息的 Delphi 位图 32 位 我需要将其转换并保存为 PNG 文件 同时保留透明度 我目前拥有的工具是graphics32 Library GR32 PNG 由Christian Budde 提供 和PNGImag
  • 适用于 .NET 2.0 的更精确的 PNG 库?

    是的 我正在使用 C 2 0 需要对 PNG 文件执行操作 例如使用自定义调色板 但我不知道如何使用 System Drawing 是否有第 3 方库 最好是兼容 GPL 的 可以对 PNG 编码进行更精细的控制 Update 我想做的事情
  • 在 WPF 中将 png 图像合并为单个图像

    我正在寻找一种将一些 PNG 平铺图像合并为大图像的方法 所以我搜索并找到了一些链接 This https stackoverflow com questions 6325057 c sharp combine lots of images
  • 如何将 zlib 添加到现有的 qt 安装中

    如何将 zlib 添加到 Qt 的现有安装中 我对此很陌生 所以请给我详细的描述 提前感谢您的帮助 zlib 包含在 Qt 核心库中 如果你想在 Qt 程序中使用 zlib 函数 你只需要包含 src 3rdparty zlib 中的 zl
  • ipad safari 中的高分辨率 PNG 文件

    我有一些 asp net 站点 显示从高分辨率 tiff 文件转换而来的 png 图像 图像通过简单的 img 标签显示 问题是 wneh png 的分辨率很大 它在 ipad 的 safari 浏览器中无法正确显示 但大多数 png 文件
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • python:将base64编码的png图像转换为jpg

    我想使用 python 将一些 base64 编码的 png 图像转换为 jpg 我知道如何从 Base64 解码回原始 import base64 pngraw base64 decodestring png b64text 但现在我怎样
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但
  • MFC CImage alpha 混合出错

    我必须在图片控件上呈现由两个 PNG 文件组成的图像 其中顶部图像在某些位置具有透明像素 结果应该是plotter png 与 bar png 顶部重叠显示为 注意条上奇怪的白色轮廓 但应该是 我为它编写的代码很简单 CImage imag
  • Node.js:从 s3 下载文件并将其解压缩为字符串

    我正在编写一个AWS Lambda函数 它需要从AWS S3下载文件 解压缩文件并以字符串形式返回内容 我正在尝试这个 function getObject key var params Bucket my bucket Key key r
  • 一种用javascript创建随机噪声背景图像(png)的方法?

    YouTube的新布局添加了我非常喜欢的背景随机噪声 在其他网站上看到了几乎完全相同的效果 所以我计划在我的网页原型中使用相同的技术 或者至少在其中使用这个 技巧 我的工具箱以供将来使用 图片是这样的 取自http g raphaeljs
  • IE8、IE7透明背景问题

    对我的菜单使用图标 png 透明背景 对于 IE9 Chrome Firefox safari opera 没有任何问题 但是如果我使用 IE7 或 IE8 打开页面 图像周围会出现断线黑色边框 CSS 代码 menu item1 back
  • 优化 HTML 属性压缩顺序

    我在某处读到 按一定顺序组织 HTML 属性可以提高 HTML 文档的压缩率 我想我是从 Google 或 Yahoo 推荐的更快网站上读到这篇文章的 如果我没记错的话 建议是将最常见的属性放在第一位 例如id等 然后将其余的按字母顺序排列
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 将 SVG 文件转换为多个不同大小的 PNG 文件

    我有一个 SVG 格式的徽标图像 我想知道是否有办法生成多个不同大小的 png 文件 例如 我设置了 20 个不同的宽度和高度 它会生成 20 个 PNG 文件 如果我必须一次处理 5 张图像也没关系 我已经安装了 illustrator

随机推荐

  • 共享首选项在运行时是否存储在内存中?

    Android 中的共享首选项是否总是在启动时读取并在运行时存储在内存中 如果没有 还有比这更有效的读取偏好的方法吗 settings getSharedPreferences myPrefsFile 0 int answer settin
  • iPhone 4 iOS 5 电池电量监控我需要将 setBatteryMonitoringEnabled:NO 添加到定期电池检查吗?

    我正在运行一个应用程序 可以在一夜之间对加速度计和陀螺仪数据进行采样 这是一个非常耗电的操作 我想教我的应用程序识别电池何时变低 这是我的原型代码 每 10 分钟检查一次电池电量 NSDate date NSDate date if int
  • Protractor:如何从字符串中删除多余的空格,就像我们在 java getText.trim() 中使用的那样

    如何从字符串中删除多余的空格 就像我们在中使用的那样java getText trim in 量角器 我这样使用 var columnvalue rows get 9 getText var columnvalue1 columnvalue
  • jQuery - 如何确定哪个链接被点击

    我有一个简单的 PHP 代码 可以生成n以下代码的副本 p class center Click Here to See Data p div class divSDB L2 div 它是使用 PHP 生成的 因此副本的数量预先未知 在另一
  • 返回 SOAP xml - Android

    在处理 Web 服务时 我使用适用于 Android 的 k2SOAP SoapObject request new SoapObject NAMESPACE METHOD NAME request addProperty ProjectI
  • 如何访问/记住闪亮中未选中的值?

    我正在摆弄 R 中的闪亮应用程序 该应用程序有 选择列表Input A 主要组 具有可能的值 A B 和 或C 一组复选框Input b 子群 它们是 通过选择动态填充Input A列表 chkb a 和 chkb b 代表 A c d 代
  • 如何访问 pytest 夹具中的所有标记?

    我正在使用 pytest 我想用标记来标记我的测试 这些标记将指定固定装置要在驱动程序中加载哪个页面 这可以轻松地与行为上下文对象一起使用 但我找不到如何使用 pytest 来做到这一点 以这段代码为例 import pytest pyte
  • ASP.NET 2.0 - 带有 tbody / thead 的 DataGrid

    有没有办法让 DataGrid 控件呈现 tbody 和 thead HTML 元素 虽然我喜欢 user186197 的答案 但该博客文章使用反射 但在非完全信任的托管环境中可能会出现问题 这是我们使用的 没有黑客 public clas
  • richTextBox 字符数限制?

    我在丰富的文本框中存储大量文本时遇到问题 我正在尝试读取一个相当大的文本文件 从 90mb 到 450mb 的任意位置 并将我读到的内容放入富文本框中 它可以在一个简单的程序中运行 但是当我在一个复杂的程序中运行时 我会得到一个 OutOf
  • 如何在不使用 CreateUser 的情况下在 ASP.NET 成员资格表中创建用户

    我想将用户和帖子从我正在使用的现有论坛迁移到 ASP NET 成员资格表 而不使用 CreateUser 基本上我想维护用户ID 以便当我迁移帖子时它们继续与正确的用户关联 有没有办法做到这一点 或者我最好只使用 CreateUser 然后
  • filepicker.io - 转换()和存储与 FPUrl 转换

    我有一个应用程序 用户可以在其中上传图像 并且它必须提供三种不同的尺寸 缩略图 中尺寸 全尺寸 我的用户不需要修改该图像 似乎有两个选择 选项1 每当我想显示缩略图时 就使用图像转换网址 前任 选项2 将convert 与store 结合使
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 由于标志字节串 -lt-0_10_4,无法使用 Stack 构建 hello world 程序

    通过生成一个裸露的 hello world 项目 stack new myproject simple 每当我跑步时stack setup stack init or stack build我总是出现以下错误 Downloading lts
  • 如何删除“绿屏”肖像背景

    我正在寻找一种方法来自动从大量图片中删除 透明 绿屏 肖像背景 到目前为止 我自己的尝试 呃 不太成功 我正在四处寻找any有关该主题的提示 解决方案或论文 商业解决方案也很好 在您评论并说不可能自动执行此操作之前 不 事实并非如此 实际上
  • PHP 扩展 mysqli 和 nd_mysqli 之间的区别[重复]

    这个问题在这里已经有答案了 Mysqli 准备好的语句 如下所示 在以下情况下会抛出以下错误 get result 叫做 stmt connection gt prepare select column from table where i
  • 是否可以在没有 LoadUserProfile = True 的情况下运行 WIF

    我正在尝试在共享主机上运行 WIF 依赖方应用程序 他们不会将 IIS 设置 LoadUserProfile 设置为 true 因此我收到以下错误 消息 数据保护操作失败 这可能是由于没有为当前线程的用户上下文加载用户配置文件而导致的 这可
  • 在 WPF 字体大小和“标准”字体大小之间转换

    我注意到在 WPF 中 12 磅的默认字体大小大致相当于 普通 应用程序 例如写字板 中的 9 磅 WPF 中的 10 磅大约是 7 磅标准 当我尝试匹配默认字体大小时在WPF写字板中的10 pt中 我发现13是最接近的 首先 为什么WPF
  • 如何在 PrimeNG 的 FileUpload 组件中中止文件上传?

    一 总结 基于PrimeNG中选择的文件文件上传组件 https www primefaces org primeng fileupload 我想中止特定文件名模式的文件上传到后端服务器 角度 6 0 7 PrimeNG 6 0 2 2 第
  • 将四边形(四边形)拟合到斑点

    应用不同的过滤和分割技术后 我最终得到如下图像 我可以访问一些轮廓检测函数 这些函数返回该对象边缘上的点列表 或者返回一个拟合的多边形 尽管有很多边 远多于 4 个 我想要一种将四边形适合该形状的方法 因为我知道它是应该是四边形的鞋盒的正面
  • PNG:deflate 和 zlib

    我试图理解 PNG 的压缩 但我似乎 网上查了很多自相矛盾的资料 我想了解 LZ77部分 带链表的哈希表中的搜索是如何完成的 这是在 deflate 中定义的吗 或者在zlib中实现 可以选择搜索方法吗 PNG 编码器 解码器可以设置一些压