在Python中使用PIL压缩PNG图像

压缩图像以加速图像处理和分析现在非常普遍。它的流行可归因于减少图像数据的不相关性和冗余性。以有效的形式传输数据并减少渲染图像所需的位数。

可以通过压缩图像文件来实现存储优化。以较低的网络带宽实现高效的文件传输也是当前需要压缩图像的原因。

随着当今世界技术进步的步伐,我们需要提高出于官方目的上传图像的速度,其中分辨率并不像文件的证明那么重要。

使用Python中的Pillow库,我们可以压缩任何格式的图像,例如JPG、PNG等。

要在 Python 中压缩图像,请使用 Pillow 库。使用 进行安装pip install pillow,然后创建一个功能来调整图像大小并以优化的质量保存图像。使用图像文件调用此函数以获得压缩版本,从而在保持图像质量的同时实现存储优化和更快的传输。

在 Python 中使用 Pillow 进行图像压缩

在 Python 中,许多库包含用于各种目的的预定义函数。Pillow (PIL) 是 Python 中用于图像压缩的流行库。使用Pillow,我们可以轻松地压缩和减小图像的大小。

在需要成千上万用户上传大量图像的网站上,图像压缩不仅仅是一种愿望,更是一种需要。

Pillow 是一个免费的开源 python 库,用于图像处理、操作、保存和打开各种格式的文件,如 PNG、JPG 等。它是可用于更快地访问像素数据的更有效的方法之一图像的。它由 Jeffrey A Clark 开发,并由Tidelift支持要了解有关枕头的更多信息,请单击此处

图像压缩的优点和缺点

python中的图像压缩有很多优点和缺点。他们之中有一些是:

优点:

  • 使图像更容易携带。
  • 提高文件传输的速度,例如在互联网上上传或下载图像。
  • 减小图像尺寸消耗更少的带宽。
  • 无损图像缩小将保留几乎相同的图像质量和外观,同时删除不相关的像素数据以加快图像处理速度。
  • 在需要来自数百万用户的大量图像数据的网站中,压缩有助于优化速度和内存使用。
  • 压缩图像可以通过电子邮件和社交媒体网站轻松更快地共享。

缺点:

  • 导致图像质量下降。
  • 可能会导致重要像素数据丢失。
  • 有时可能不支持图像分层。

建议:Python Pillow 模块 – 简介。

使用Python和PIL压缩图像(代码)

在本教程的这一部分中,我们将介绍在 Python 中实现 Pillow 库以压缩图像的代码。

我们将首先导入应安装在您的系统中的所需模块,然后再继续。如果您还没有它们,请在命令提示符中运行以下命令。

pip install pillow

我将使用的图像如下所示。您可以下载它,也可以使用任何您想要的 .PNG 格式的图像。

示例图片

如果单击图像的属性,您可以看到压缩前图像的大小。我的图像的原始大小是 0.99MB(1017.24KB),如下所示,

原始样本图像属性

现在,让我们看一下减少其大小的代码:

# importing the required modules
import os
from PIL import Image
 
# Function to compress the image
def compressimages(image_file):
    # accessing the image file
    filepath = os.path.join(os.getcwd(), image_file)
    # maximum pixel size
    maxwidth = 1200
    # opening the file
    image = Image.open(filepath)
    # Calculating the width and height of the original photo
    width, height = image.size
    # calculating the aspect ratio of the image
    aspectratio = width / height
 
    # Calculating the new height of the compressed image
    newheight = maxwidth / aspectratio
 
    # Resizing the original image
    image = image.resize((maxwidth, round(newheight)))
 
    # Saving the image
    filename = "Compressed.PNG"
    image.save(filename, optimize=True, quality=85)
    return
 
 
# driver code
image_file = "path_of_samplephoto.png"
# calling the function
compressimages(image_file)
print(
    "The given image has been compressed, download the files to notice the difference in file size."
)

输出将在存储原始图像的目录中包含一个名为“Compressed.PNG”的新创建的图像。但这个新图像的尺寸会更小。让我们看看新图像的尺寸。

压缩图像属性

图像的大小(即分辨率)现在已从 0.99MB 减小到 986KB,因此压缩已成功。压缩后的图像应该很好,因为它在图像质量方面应该是“无损”的。让我们看看压缩后的图像。

压缩图像。

图像虽然尺寸较小,但几乎保留了其原始质量,并且不会显得脏污!这就是在 python 中使用 PIL 压缩图像的方法。

结论

在本文中,我们学习了如何使用名为 Pillow 的图像处理开源库之一在 Python 中压缩图像。

PIL 或Pillow是 Python 中最强大的图像操作模块之一。它最常用于减小图像大小、隐式或显式地将图像从一种格式转换为另一种格式、保存图像、压缩图像等等。

随着技术的不断进步,高效的图像压缩对于初学者和专家来说变得越来越重要。图像压缩技术将如何发展以满足未来应用的需求?