问题标签 [image-compression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2041 浏览

java - Can I change the compression algorithm used by Java's ImageWriter when creating a JPEG?

Or, alternatively, is there a better library to use to handle compression?

Let me preface this with what I already understand: (1) JPEG is lossy--it won't look the same as the input file. (2) I can adjust the compression quality setting to something between 0.0 and 1.0, as I've done in the code below.

I am taking a BufferedImage and converting it to a JPEG and am noticing that Java's ImageWriter's .write() method produces sub-par results for JPEG images (as compared to Photoshop "Save for Web", as an example).

My code looks a bit like this right now:

Playing with the compression quality setting produces different quality outputs, but even at setting "1.0", they don't look as nice as what I can get with other tools when creating a JPEG.

Since I'm a new user and can't post images yet... here's a webpage that demos the differences. Hopefully I can get them in here permanently at some point for future users who may have a similar question.

Obviously, this particular image is not the best candidate for JPEG compression (the PNG is much smaller and lossless), but it allows the compression artifacts to be seen more easily. The actual images will be mostly photographic in nature. At the very least, this is more to question the algorithm and quality of Java's JPEG compression versus others out there that produce images that look closer to the original with fewer bytes.

0 投票
2 回答
377 浏览

c# - 可压缩的可保存图像库?

这可能是不可能的,或者更确切地说,不是很受欢迎,但我想知道如何为图像创建一个数据文件,实际上会压缩它们?假设我总共有 200MB 的图像文件,是否有一些系统可以将它们存储在一个文件中,将它们压缩到总大小为 150MB?(只是示例数字,比率并不重要)。

我知道我可以对图像进行编码Base64,然后将它们存储在SQLite数据库中,但我读到以编码形式存储图像实际上会导致比原始图像文件本身稍大的大小。

我也在考虑一个ZIP文件,但我不确定它是否可以用作“库”?

如果这样的东西不作为预定义的课程存在,有人可以带领我走上正确的道路吗?

这是对我正在寻找的东西的模拟:

我希望这是可能的。否则,我将忍受稍大的文件大小并对Base64它们进行编码。但是,因为目前我有将近 500 张图像要存储,所以节省的 KB 就是赚取的 KB。:) 另外,请不要评判我的代码示例的质量,这只是一个模型,我是即兴创作的。

干杯,并提前谢谢你。

0 投票
5 回答
10301 浏览

compression - 无损图像压缩工具

在公共网站上运行Google Page Speed,我看到了该工具的一些建议,如下所示:

无损压缩http://g-ecx.images-amazon.com/images/G/01/electronics/detail-page/Acer-120x120._V137848950_.gi可以节省 4.8KiB(减少 26%),他们还提供了一个链接到优化的内容。但他们是在每张图片的基础上做的。我看到压缩后文件大小显着减小。所以问题是:

有没有我可以使用的工具或 Web 服务,以便我给它一个未压缩图像的目录(比如 .gif),它会返回一个所有图像都压缩的目录?

我在这里找到了关于 SO 的一个有点相关的问题,但它不是完全重复的。

谢谢阅读。

0 投票
2 回答
287 浏览

image - 图像的批量优化

我的客户端上传了大约 500 张图片到服务器,没有一张经过优化。大多数只有 800x600 左右,但文件大小为 700 KB - 1.5 MB。显然这里有很大的优化空间。我尝试在本地做一些事情http://imageoptim.com/),但它会耗尽我的笔记本电脑并且花费太长时间才能完成。我尝试在我的 VPS 上做一些服务器端(使用http://lyncd.com/2009/03/imgopt-lossless-optimize-png-jpeg/),但这似乎也花费了太长时间(我们正在谈论9 小时浏览 30 张图片)。

有没有更有效的方法来做到这一点?像(现已不复存在的)smush.it API 这样的东西将是完美的。

0 投票
2 回答
97 浏览

wordpress - 重新处理 WordPress 中的所有图像

我有一个博客,它在帖子中嵌入了所有图像的最高分辨率版本,而不是链接到图像附件页面的缩略图。

你能告诉我如何重新处理所有嵌入的图像,以便将它们输出为缩小尺寸的缩略图,链接到它们自己的附件页面(这是 WordPress 默认设置)?

我是否认为我可以在其中涉及Regenerate Thumbnails插件?

0 投票
1 回答
3978 浏览

c# - C#中无损图像压缩的最佳格式

我需要单独保存视频帧并无损压缩它们。我正在寻找 c# 中的最佳方法和格式——最好的意思是实现简单性、良好压缩和合理处理要求的最佳平衡。

我知道 PNG 是无损的,但它的压缩对于照片风格的图像来说并不是很好。

我知道有无损 Jpeg 格式,但是这是用 C# 实现的吗?

还有其他我不知道的选择吗?

0 投票
2 回答
1524 浏览

android - 使用 Android 创建索引颜色 PNG

我想知道是否有人知道强制Android使用其功能创建索引颜色PNG文件的compress方法。

例如:

此代码打开一个 PNG 文件,将其大小调整为 80% 并将其保存到 SD 卡。生成的图像确实缩放到 80%,但生成的文件大小几乎是原始大小的 5 倍。

这是因为原始文件使用的是索引颜色(PseudoClass),而不是真彩色(DirectClass)。[1]

ImageMagick 足够聪明,可以使用索引颜色和双色颜色图对原始双色图像进行编码。在 Android 中打开、缩放和重新编码后的文件不会这样做,而是对每个像素使用真彩色,从而导致文件大小更大。

问题

  1. 有谁知道是否有办法强制标准 Android 库使用颜色图压缩文件?
  2. 如果没有,有谁知道是否有任何纯 Java 实现可以完成这 3 个任务(解码、缩放、编码)?

提前致谢。

[1] PNG 规范

0 投票
3 回答
5094 浏览

c# - 如何使用 C# 压缩具有运行长度编码的图像?

如何使用 C# 压缩具有运行长度编码的图像?是否有任何可用的库来支持这一点?

游程编码是否仅适用于位图图像?如果是这样,我将如何使用 C# 将图像类型转换为位图?

我还想问一下他们在此之后生成的文件类型是什么,他们会保留他们的文件类型还是会有一个新的文件类型?

0 投票
2 回答
2585 浏览

java - 如何在 Android 中将捕获的图像压缩为特定大小?

我正在使用我的 Android 相机拍摄图像,但相机是 8 MP,所以我得到大约 4-5 MB jpeg 图像。因此,我尝试使用以下代码将它们压缩到 1 MB。

data包含jpeg格式的图像,而baosByteArrayOutputStream类型。

它允许我捕获一些图像,但在几张照片之后,应用程序崩溃并显示错误日志Out of memory。任何人都可以提供一个更好的解决方案来压缩JPEG。

谢谢你

0 投票
1 回答
106 浏览

licensing - 为我的有损图像压缩算法选择什么许可证?

我正在尝试以良好的比率实现有损图像压缩算法,并且(我希望)jpeg 具有的伪像更少。我计划首先发布编码器/解码器工具。我听说 jpeg2000 的使用存在一些与许可和专利相关的问题。所以我想用我的算法避免这些问题(我提到 jpeg2000 只是作为许可证问题的例子,我的算法与 jpeg2000 有很大不同)。我也听说过使用 GPL 许可的一些东西的问题。所以主要的问题是关于选择什么许可证来让每个人都可以访问我的作品,并禁止一些坏人对它做坏事以使其不那么容易被访问。我也想知道 GPL 对图像压缩算法有什么缺点。谢谢。