热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

想搞清楚zlib,minizip,infozip,libbzip2这些库之间的关系.

是不是zlib是这些库的压缩算法的实现库,而这么多库它们只是在打包的时候使用了zlib进行压缩而已.而具体的打包格式就有ZIP,BZIP2,GZ之分?但是在我们在用gz压缩时候通常之前
是不是zlib是这些库的压缩算法的实现库,而这么多库它们只是在打包的时候使用了zlib
进行压缩而已.而具体的打包格式就有ZIP,BZIP2, GZ之分?

但是在我们在用gz压缩时候通常之前
还要用tar打包.我有点搞不清楚了.

还有zlib到底实现的是一种压缩算法还是多种,分别是什么?

顺便想理清下面的格式之间的关系:
zip,gz,tar,bz2,bzip2,png

5 个解决方案

#1


Zip

ZIP,是一个计算机文件的压缩的算法,原名Deflate(真空),发明者为菲尔·卡茨(Phil Katz)),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为 application/zip 。目前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7-Zip格式。从性能上比较,RAR格式较ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。 
 


gz

GZ是UNIX系统中的压缩文件,ZIP的Gnu版本



Tar

UNIX/Linux中的一个文件打包工具,用于将许多文件一起打包,形成一个档案文件,以便归档。它最初设计用于磁带备份,现在也可用于其它存储介质。单独使用时,生成具有.tar扩展名的文件。当与Gzip结合用于数据压缩时,生成的文件扩展名可能是.tgz、.tar.gz或与compress结合用于数据压缩时,生成的文件扩展名则是.tar.Z



png

PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。流式网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG's Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法。 
 

Bzip2

Bzip2 是个很棒的压缩数据用之新型演算法。大致上能够达到以它的对手 gzip 所产出的文件之 60-70% 左右的压缩率。
本文件将教你几个 bzip2 的应用软件。 



BZ2
一种压缩文件格式,可以用WinRAR打开。

 

#2


tar是归档,gz是压缩。tar.gz也就是把一堆文件打包成一个文件再压缩,功能分离是Unix的一贯风格。
bz2是代替gz的格式,压缩能力比较强。bzip2好像就是用来解压bz2的吧。

#3


gzip只能一下压一个文件,用tar打一下包成一个文件,再用 gzip就可以压缩整个目录了。tar没有压缩的功能。

bz2是bzip2压缩成的文件的后缀,bzip2是另外一种区别于zip的算法。

gz和zip,gz经常用在linux上,zip经常用在windows下,而且zip可以包含很多文件。
两者的算法几乎一样。见zlib主页的一句话:Not surprisingly, the compression algorithm used in zlib is essentially the same as that in gzip and Zip, namely, the `deflate' method that originated in PKWARE's PKZIP 2.x. 

png是图像格式,压缩算法跟zlib的关系密切,看zlib主页上一句话:Note that zlib is an integral part of libpng and has been tested extensively as part of many PNG-supporting applications. 

zlib可以直接产生gz,而minizip和infozip是产生zip的两个库。

#4


我看我还是用zlib,它有个自带minizpi的版本.

#5


tar  在nulix下面比较多点  zip之类的只能在win看到吧

推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • andr ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
author-avatar
mobiledu2502891787
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有