标签: zlib

使用Nodejs中的zlib压缩和解压缩数据

有人可以向我解释一下zlib库在Nodejs中的工作原理吗?

我是Nodejs的新手,我还不确定如何使用缓冲区和流.

我的简单场景是一个字符串变量,我想要将字符串压缩或解压缩(放气或膨胀,gzip或gunzip等)到另一个字符串.

即(我希望它如何工作)

var zlib = require('zlib');
var str = "this is a test string to be zipped";
var zip = zlib.Deflate(str); // zip = [object Object]
var packed = zip.toString([encoding?]); // packed = "packedstringdata"
var unzipped = zlib.Inflate(packed); // unzipped = [object Object]
var newstr = unzipped.toString([again - encoding?]); // newstr = "this is a test string to be zipped";
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助:)

compression string zlib node.js

27
推荐指数
2
解决办法
5万
查看次数

有哪些简单的zlib教程?

我正在寻找一个关于zlib的好教程.我只对解压缩档案感兴趣.我还想知道如何在存档中访问所需的文件,最好是单独使用文件名,如果可以在zlib中完成的话.

c c++ zlib

26
推荐指数
2
解决办法
4万
查看次数

Python:创建流式gzip文件?

我试图找出用Python压缩流的最佳方法zlib.

我有一个类似文件的输入流(input,下面)和一个输出函数,它接受类似文件(output_function,下面):

with open("file") as input:
    output_function(input)
Run Code Online (Sandbox Code Playgroud)

我想input在发送之前对gzip压缩块进行压缩output_function:

with open("file") as input:
    output_function(gzip_stream(input))
Run Code Online (Sandbox Code Playgroud)

看起来gzip模块假定输入或输出都是gzip的磁盘文件...所以我假设zlib模块是我想要的.

但是,它本身并没有提供一种简单的方法来创建类似于文件的流......而它支持的流压缩是通过手动将数据添加到压缩缓冲区,然后刷新缓冲区来实现的.

当然,我可以写一个包装器zlib.Compress.compresszlib.Compress.flush(Compress由它返回zlib.compressobj()),但我担心缓冲区大小错误或类似的东西.

那么,使用Python创建流式,gzip压缩文件的最简单方法是什么?

编辑:为了澄清,输入流和压缩输出流都太大output_function(StringIO(zlib.compress(input.read())))而不适合内存,所以类似的东西并没有真正解决问题.

python gzip zlib

22
推荐指数
3
解决办法
1万
查看次数

链接libpng和zlib?

我正在尝试编译一个同时使用libjpeg和libpng的项目.我知道libpng需要zlib,所以我独立编译了所有三个并将它们(libjpeg.a,libpng.a和libz.a)放在一个名为的文件夹中linrel32.我执行的是:

g++ -Llinrel32/ program.cpp otherfile.cpp -o linrel32/executable -Izlib/ -Ilpng140/ -Ijpeg/ -lpthread -lX11 -O2 -DLINUX -s -lz -lpng -ljpeg

所以我包括了三个库.仍然,链接器抱怨:

linrel32//libpng.a(png.o): In function `png_calculate_crc':
png.c:(.text+0x97d): undefined reference to `crc32'
linrel32//libpng.a(png.o): In function `png_reset_crc':
png.c:(.text+0x9be): undefined reference to `crc32'
linrel32//libpng.a(png.o): In function `png_reset_zstream':
png.c:(.text+0x537): undefined reference to `inflateReset'
linrel32//libpng.a(pngread.o): In function `png_read_destroy':
pngread.c:(.text+0x6f4): undefined reference to `inflateEnd'
linrel32//libpng.a(pngread.o): In function `png_read_row':
pngread.c:(.text+0x1267): undefined reference to `inflate'
linrel32//libpng.a(pngread.o): In function `png_create_read_struct_2':
Run Code Online (Sandbox Code Playgroud)

(...你明白了:D)

collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我知道缺少的函数来自zlib,我在那里添加了zlib.打开libz.a,似乎有一个很好的结构.重新编译它,一切看起来都很好.但它不是...... …

g++ zlib libpng

22
推荐指数
1
解决办法
3万
查看次数

在javascript中解压缩gzip和zlib字符串

我想从tmx文件中获取压缩层数据.谁知道在javascript中解压缩gzip和zlib字符串的库?我尝试zlib但它对我不起作用.例如,tmx文件中的图层数据是:

  <data encoding="base64" compression="zlib">
       eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==
  </data>
Run Code Online (Sandbox Code Playgroud)

我的javascript代码是

var base64Data = "eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==";
var compressData = atob(base64Data);
var inflate = new Zlib.Inflate(compressData);
var output = inflate.decompress();
Run Code Online (Sandbox Code Playgroud)

它运行时显示消息错误"不支持的压缩方法".但我尝试使用在线工具解压缩为http://i-tools.org/gzip,它返回正确的字符串.

javascript compression gzip zlib tmx

21
推荐指数
3
解决办法
7万
查看次数

在处理给定的数据集时,如何为zlib'setDictionary'找到一个好的/最佳的字典?

我有一组(巨大的)类似的数据文件.该集合不断增长.单个文件的大小约为10K.每个文件都必须自己压缩.使用zlib库完成压缩,该库由java.util.zip.Deflater类使用.使用字典将字典传递给Deflate算法时setDictionary,我可以提高压缩率.

有没有办法(算法)找到'最佳'字典,即具有整体最佳压缩比的字典?

请参阅zlib手册

java compression zlib deflate

20
推荐指数
1
解决办法
7094
查看次数

mod_deflate和zlib output_compression之间的区别

谁能告诉我使用mod_deflate和zlib output_compression之间的区别?

我知道zlib是用PHP完成的,而mod_deflate是在Apace中完成的,我的.htaccess文件看起来像:

php_flag zlib.output_compression On
Run Code Online (Sandbox Code Playgroud)

要么:

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|gif)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
Run Code Online (Sandbox Code Playgroud)

两者的优点/缺点是什么?

php apache .htaccess zlib mod-deflate

20
推荐指数
1
解决办法
9098
查看次数

Node.js - 压缩/解压缩文件夹

我正在潜入node.js的Zlib.我能够使用提供的示例(http://nodejs.org/api/zlib.html#zlib_examples)压缩和解压缩文件,但我无法找到有关为文件夹执行相同操作的更多信息?

一种可能性(但我认为是修补)是使用node-zip模块并逐个添加文件夹的所有文件.但是在解压缩时我会遇到问题(在这种情况下我会丢失文件夹).

知道如何使用Node.js压缩(然后解压缩)整个文件夹(尊重子焊工层次结构)?

谢谢.

zlib node.js

19
推荐指数
2
解决办法
2万
查看次数

无法找到 zlibwapi.dll。请确保它在您的库路径中

我正在开发一个对象检测项目,并希望使用我的 GPU 处理该项目。我已经完成了NVIDIA 设置教程,一切正常。我的对象检测代码最初适用于 CPU,但是当我添加这两行代码时:

net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
Run Code Online (Sandbox Code Playgroud)

显示的输出:

无法找到 zlibwapi.dll。请确保它在您的库路径中!

我已经从cuDNN 网站下载了 zlibwapi.dll zip 文件,解压缩并将整个文件夹添加到我的环境变量路径中。该文件夹名为“zlib123dllx64”,包含“dll_x64”文件夹和“static_x64”文件夹。“zlibwapi.dll”位于“dll_x64”文件夹内。我已在用户和系统路径变量中添加了“zlib123dllx64”文件夹,但它似乎没有解决任何问题。我怎样才能修复这个错误并使GPU与代码一起工作?

我的环境设置:

  • Windows 10
  • 视觉工作室社区 2019
  • OpenCV Python yolov3

opencv gpu zlib

18
推荐指数
3
解决办法
6万
查看次数

使用zlib压缩多个文件

以下代码将压缩一个文件.如何压缩多个文件

var gzip = zlib.createGzip();
var fs = require('fs');
var inp = fs.createReadStream('input.txt');
var out = fs.createWriteStream('input.txt.gz');

inp.pipe(gzip).pipe(out);
Run Code Online (Sandbox Code Playgroud)

compression gzip zlib node.js

17
推荐指数
3
解决办法
1万
查看次数

标签 统计

zlib ×10

compression ×4

gzip ×3

node.js ×3

.htaccess ×1

apache ×1

c ×1

c++ ×1

deflate ×1

g++ ×1

gpu ×1

java ×1

javascript ×1

libpng ×1

mod-deflate ×1

opencv ×1

php ×1

python ×1

string ×1

tmx ×1