我正在维护一个网站,其中包含数千张未经过压缩的图像.目前主页的重量为1.5 Mb,可能很容易减少一半.
我正在寻找一种工具,它将把一个装满JPG图片的文件夹重新压缩到它们的"最佳"压缩值.
显然,"最佳有损压缩设置"是矛盾的,但我想也许是一种工具,它会尝试不同的水平并将输出与输入进行比较,并选择尺寸和破坏之间的"最佳位置"?
或者甚至尝试PNG是否是更好的选择,很多时候,它是"绘图"类型的东西.
你们有谁知道这样的工具吗?
我有很多有趣的编码,但我打赌有人已经做了,我会节省2天.
或者,当然,任何将所有图片放在文件夹中并以固定质量等级(例如40)重新压缩它们的东西也会起作用,它不会让我内心的书呆子感到高兴,但它会解决我的问题.问题就好了.
(理想情况下可以在Windows上运行,最好是从命令行运行)
谢谢!
我最近在Hadoop中设置了LZO压缩.在HDFS中压缩文件的最简单方法是什么?我想压缩文件,然后删除原始文件.我应该使用IdentityMapper和使用LZO压缩的IdentityReducer创建MR作业吗?
zlib中的函数deflate()和compress()函数有什么区别?
我查看了在线示例,其中一些使用了deflate而其他人使用了compress.
我该如何决定使用哪种情况?
我正在为Windows 8构建一个metro风格的应用程序,我有一个zip文件,我从Web服务下载,我想提取它.
我已经看过压缩和解压缩的示例,但是需要压缩/解压缩一个文件.我有一个完整的目录结构,我需要提取.
这是我到目前为止:
var appData = ApplicationData.Current;
var file = await appData.LocalFolder.GetItemAsync("thezip.zip") as StorageFile;
var decompressedFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("tempFileName", CreationCollisionOption.GenerateUniqueName);
using (var decompressor = new Decompressor(await file.OpenSequentialReadAsync()))
using (var decompressedOutput = await decompressedFile.OpenAsync(FileAccessMode.ReadWrite))
{
var bytesDecompressed = await RandomAccessStream.CopyAsync(decompressor, decompressedOutput);
}
Run Code Online (Sandbox Code Playgroud)
但这并不好,bytesDecompressed变量总是零大小,但zip文件是1.2MB
这里的任何帮助将不胜感激.
编辑:回答,谢谢 Mahantesh
这是解压缩文件的代码:
private async void UnZipFile()
{
var folder = ApplicationData.Current.LocalFolder;
using (var zipStream = await folder.OpenStreamForReadAsync("thezip.zip"))
{
using (MemoryStream zipMemoryStream = new MemoryStream((int)zipStream.Length))
{
await zipStream.CopyToAsync(zipMemoryStream);
using (var archive = new ZipArchive(zipMemoryStream, …Run Code Online (Sandbox Code Playgroud) 我有一组整数,我希望有一个最紧凑的表示.我有以下约束/功能:
我尝试了一些事情,但我对结果不满意,并且我确信存在更好的解决方案:
我很高兴听到你可能有任何想法.提前致谢!
更新:
事实证明,delta编码似乎接近最优解.对于集合中元素的其他其他分布,这可能不同.
有一段时间了,我无法从Windows资源管理器中将文件或文件夹发送到Zipped文件夹.选项就在那里,但是当我点击它时,没有任何反应.
似乎其他人也有类似的问题,但在他们的情况下,该选项已经变灰,或者另一个程序已作为默认.zip程序接管.
如果我输入"regsvr32 %windir%/system32/zipfldr.dll"运行命令,我会收到以下错误:
_______________________________
[Window Title]
RegSvr32
[Content]
The module "C:\WINDOWS/system32/zipfldr.dll" was loaded but the entry-point DllRegisterServer was not found.
Make sure that "C:\WINDOWS/system32/zipfldr.dll" is a valid DLL or OCX file and then try again.
[OK]
_______________________________
Run Code Online (Sandbox Code Playgroud)
非常讨厌,我没有足够的信心在没有直接帮助的情况下在注册表中进行黑客攻击,但也许有一个简单的选择,或者我想念的简单事情?
感谢任何人对此的帮助!
System.IO.Compression.GZipStream或System.IO.Compression.Deflate与zlib压缩兼容吗?
我有应该进行压缩的代码:
FileStream fs = new FileStream("g:\\gj.txt", FileMode.Open);
FileStream fd = new FileStream("g:\\gj.zip", FileMode.Create);
GZipStream csStream = new GZipStream(fd, CompressionMode.Compress);
byte[] compressedBuffer = new byte[500];
int offset = 0;
int nRead;
nRead = fs.Read(compressedBuffer, offset, compressedBuffer.Length);
while (nRead > 0)
{
csStream.Write(compressedBuffer, offset, nRead);
offset = offset + nRead;
nRead = fs.Read(compressedBuffer, offset, compressedBuffer.Length);
}
fd.Close();
fs.Close();
Run Code Online (Sandbox Code Playgroud)
我认为确实如此,但我想解压缩上面压缩的内容.我这样想:
FileStream fd = new FileStream("g:\\gj.new", FileMode.Create);
FileStream fs = new FileStream("g:\\gj.zip", FileMode.Open);
GZipStream csStream = new GZipStream(fs, CompressionMode.Decompress);
byte[] decompressedBuffer = new byte[500]; …Run Code Online (Sandbox Code Playgroud) postgresql中是否有任何内部方法可以通过tcp套接字启用psql连接上的数据压缩.
我还可以使用其他一些不在postgresql内部的方法,比如ssh压缩或任何其他vpn压缩.但是,这可能会增加复杂性.
问候,
compression ×10
c# ×3
zlib ×2
batch-file ×1
combres ×1
deflate ×1
directory ×1
dll ×1
gzipstream ×1
hadoop ×1
integer ×1
jpeg ×1
minify ×1
ocx ×1
postgresql ×1
windows-8 ×1
zip ×1