如何在 Python 中压缩图像2024年8月29日 | 阅读 7 分钟 本教程将教我们如何使用 Python 脚本压缩给定的图像。图像压缩是一个在不降低图像质量的情况下减小图像大小的过程。互联网上有很多工具,我们需要上传并压缩图像而不会丢失原始质量。如果我们想快速可靠地减小图像大小,它们大多数都是不错的选择。但是,我们不会使用任何第三方 API 来做到这一点。我们将在 Python 脚本中使用 Pillow 库。 让我们开始编写 Python 代码。 安装 Pillow 库首先,我们使用 pip 命令安装 pillow 库。 安装库后,将其导入我们的文件。 在我们深入研究图像压缩之前,让我们创建一个以下函数,以用户友好的格式打印文件大小。 示例 - 现在我们将编写用于压缩图像的函数。让我们来理解下面的函数。 示例 - 让我们分解上面的函数并理解它是如何工作的。 在上面的代码中,我们创建了一个名为 compress_given_image() 的函数,该函数接受多个参数 -
现在我们在主函数中调用上面的函数,并将使用 argparse 模块将其与命令行参数集成。让我们来理解下面的代码。 在上面的代码中,我们创建了命令行参数解析器,并添加了我们之前讨论过的参数。让我们在命令行中运行我们的脚本。 完整脚本现在在命令行终端中运行上面的脚本。 $ python main.py house.jpg 输出 ================================================== Image: house.jpg To JPEG: False Quality: 90 Resizing ratio: 1.0 ================================================== [*] The size of image: (275, 183) [*] Size before compression: 180.94KB New file saved: house_compressed.jpg Size after compression: 100.21KB Image size change: 47.81% of the original image size. $ python main.py nature.jpg -j 输出 ================================================== Image: nature.jpg To JPEG: True Quality: 90 Resizing ratio: 1.0 ================================================== [*] The size of image: (612, 384) [*] Size before compression: 80.67KB New file saved: nature_compressed.jpg Size after compression: 73.37KB Image size change: 4.45% of the original image size. $ python main.py sample_image.png -j -q 75 输出 ================================================== Image: sample_image.png To JPEG: True Quality: 75 Resizing ratio: 1.0 ================================================== [*] The size of image: (740, 935) [*] Size before compression: 146.32KB New file saved: sample_image_compressed.jpg Size after compression: 123.03KB Image size change: -15.92% of the original image size. $ python main.py sample_image.png -j -q 75 -w 800 -hh 400 ================================================== Image: sample_image.png To JPEG: True Quality: 75 Resizing ratio: 1.0 Width: 800 Height: 400 ================================================== [*] The size of image: (740, 935) [*] Size before compression: 146.32KB main.py:34: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead. img = img.resize((image_width, height_width), Image.ANTIALIAS) New Image shape: (800, 400) New file saved: sample_image_compressed.jpg Size after compression: 61.76KB Image size change: -57.79% of the original image size. 结论在本教程中,我们解释了如何通过 Python 脚本在恢复原始质量的同时减小图像。我们可以不使用任何第三方工具来压缩图像。您可以复制代码并在您的系统上运行。 下一主题如何将元组连接到嵌套元组 |
本文将以一维 K-means 聚类为主要议题。为了介绍该技术并阐明其思想,将使用一维的基本实现。在下一篇文章中,该概念将扩展到 N 维。本文将不仅关注...
14 分钟阅读
简介:在本文中,我们将讨论如何检查 Python 中的 10 位手机号码验证。这里我们只检查 10 位手机号码的验证。手机号码是 7894561230。验证手机号码有一些标准,即 - 第一位数字……
7 分钟阅读
线性可分性是机器学习中的一个重要概念,尤其是在监督学习领域。它指的是使用线性决策边界将一组数据点分离成不同类别的能力。换句话说,如果存在一个直线...
阅读 6 分钟
在Python中,有一种“特殊”的元组称为“命名元组”。Python初学者经常对此感到困惑,特别是关于何时以及为什么需要实现它。因为命名元组是一个元组,所以它可以执行元组能执行的所有功能。然而,它更……
阅读 6 分钟
创建图形用户界面 (GUI) 应用程序的奇妙之处在于,我们可以按照我们想要的方式自定义它们。有各种可供定制的功能,从文本字体到背景颜色。在接下来的教程中,我们将学习...
阅读 15 分钟
我们很可能在生活中遇到过很多次,我们想知道目录(文件夹)中有多少文件以及有哪些文件。或者,有时我们必须寻找一个文件,我们知道它的名字,但是...
7 分钟阅读
高度平衡二叉树 一种称为“高度平衡二叉树”或“平衡二叉树”的二叉树数据结构,其每个节点的左右子树高度相差至多一个单位。这是一个关键特性,可确保插入和……的效率。
阅读 4 分钟
在本教程中,我们将学习使用 pdb 的 Python 调试工具。当开发者在时间紧迫的情况下忙于工作并希望它能正常工作时,调试应用程序是不受欢迎的活动。我们将展示使用 pdb 的基础知识,这是 Python 的交互式...
阅读 8 分钟
Python 的 eval() 和 exec() 函数是强大的工具,允许在程序中动态执行代码。虽然它们乍一看可能相似,但它们在功能和目的上存在明显的差异。在本文中,我们将通过示例详细探讨这些函数以说明其功能...
阅读 6 分钟
我们都一定听说过网络抓取以及如何使用网络抓取从网站上抓取信息。网络抓取非常重要,因为它帮助我们从网页或网站获取所有有用的信息,并且我们可以获取我们想要的任何信息...
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India