如何在不引入伪影的情况下将 .png 模糊背景转换为压缩的 .jpg ?

平面设计 背景 压缩 优化
2022-01-17 18:47:04

我目前正在处理我的网站背景图像的图像质量问题。

我想使用一个很大的模糊背景图像,但希望它在网站上尽可能小。

要将其设为最高质量 (png),大约为 200kb。

我可以将它作为 JPG 压缩到大约 100kb,但质量会降低,这是可以预期的,但是线性周围有可怕的线条,使它看起来很糟糕。

有没有一种特殊的方法可以将此 png 转换为 jpg 但防止图像出现这些缺陷?

以下是图片:

PNG:

在此处输入图像描述

JPG (100%) 质量:

在此处输入图像描述

4个回答

这可能无法回答您的问题。一些可能的替代方案...

您是否考虑过 CSS:

background: linear-gradient(45deg, #3d667c, #1d283e);

或者您可以使用 SVG base64 技术(此处的生成器工具):

<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none"><linearGradient id="g932" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#3D667C" offset="0"/><stop stop-color="#1D283E" offset="1"/></linearGradient><rect x="0" y="0" width="1" height="1" fill="url(#g932)" /></svg>

background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc5MzIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzNENjY3QyIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzFEMjgzRSIgb2Zmc2V0PSIxIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzkzMikiIC8+Cjwvc3ZnPg==);

您是否尝试过使用更小的 PNG 并允许浏览器的原生放大算法来放大它?这可能会减小文件大小并消除 JPG 伪影。

JPEG 不是无损压缩

JPEG 压缩被认为是有损压缩,即使设置为 100% 质量也会损失一些质量。这就是为什么对于 UI 界面和背景等简单图形,通常最好使用 PNG 等无损格式。

200kb 在 2014/2015 年并没有那么大

虽然尽可能减小背景大小是个好主意,但重要的是要注意 200kb 对于大多数宽带连接来说并不是那么大。您可以使用css 媒体查询为手机和平板电脑提供不同的版本

使 png 文件更小

Photoshop 和其他绘图包使用标准 PNG 压缩,您必须使用PngOptimizer或 Yahoo 的在线服务Smush It将 200kb 减少到更少减小文件大小甚至不会降低质量,因为它是一种无损格式......它基本上优化了代码,进一步减少它,将其与 ZIP 或 RAR 文件进行比较,这些压缩文件但不会降低内容的质量。

考虑使用条纹渐变

另一种可能的解决方案可能是您使用一个 1px 的细 PNG 渐变,然后是页面的高度,然后使用 复制它background-repeat,您甚至可以考虑使用 CSS为您生成渐变,但当然您的限制不是能够使用阴影和其他调整。

我建议你看看Kraken.io,他们有一个图像优化器。您主题中的图像尺寸减小了 45%,肉眼看不到!

你也可以只使用 css,colorzilla有一个很好的工具可以为所有浏览器创建正确的 css。

如果您对渐变图像感到满意,请放弃颜色,使其变为黑白,然后为 div/body/element 提供如下背景:

background: blue url('images/gradient.png')

某些图像编辑器(例如 GIMP)允许您在保存 jpeg 时应用平滑以及控制压缩。

平滑:将平滑选项设置为非零值将使图像略微平滑。这减少了压缩造成的模糊伪影,并有助于压缩。设置为 0.10-0.15 可以去除大部分伪影,而不会出现边缘模糊。

http://en.wikibooks.org/wiki/GIMP/Saving_as_JPEG

您还可以通过控制二次采样来减少伪影

虽然标准二次采样通常适用于大多数图像,在图像质量和文件大小之间提供良好的比例,但在某些情况下,不使用二次采样 (4:4:4) 可以显着提高图像质量,即使您使用更高的压缩比以保持文件大小。最值得注意的情况是图像包含一些具有精细细节的部分,例如统一背景上的文本,以及包含几乎平坦颜色的图像。

http://www.ampsoft.net/webdesign-l/jpeg-compression.html