如何使用Python和PIL来压缩图像

如何使用Python和PIL来压缩图像

有些组织会收到几十人或更多人的数据,这些数据大多是文本形式的,还有一些图像。你们中的大多数人都知道,文本部分是以表格的形式存储在数据库中的,但是图像呢?与文本数据相比,图像很小,但在存储方面却构成了更大的空间。因此,为了节省空间并保持程序的顺利运行,他们要求用户提交压缩的图像。由于大多数读者都有一点CS背景(无论是在学校还是在大学),他们明白使用在线免费工具来压缩图像对他们来说不是一个好的做法。

在Windows 7之前,微软曾经提供MS Office Picture Manager,它可以用来在一定程度上压缩图像,但它也有一些限制。

懂一点python的人可以安装python,并在命令提示符下使用pip install pillow(Linux用户使用终端)来安装 pillow fork。

你会得到一个类似这样的屏幕

如何使用Python和PIL来压缩图像?

将所有文件集合在一个文件夹中,并将文件Compress.py放在同一文件夹中。

用python运行Python文件。

以下是该文件的源代码。

# run this in any directory 
# add -v for verbose 
# get Pillow (fork of PIL) from
# pip before running -->
# pip install Pillow
  
# import required libraries
import os
import sys
from PIL import Image
  
# define a function for
# compressing an image
def compressMe(file, verbose = False):
    
      # Get the path of the file
    filepath = os.path.join(os.getcwd(), 
                            file)
      
    # open the image
    picture = Image.open(filepath)
      
    # Save the picture with desired quality
    # To change the quality of image,
    # set the quality variable at
    # your desired level, The more 
    # the value of quality variable 
    # and lesser the compression
    picture.save("Compressed_"+file, 
                 "JPEG", 
                 optimize = True, 
                 quality = 10)
    return
  
# Define a main function
def main():
    
    verbose = False
      
    # checks for verbose flag
    if (len(sys.argv)>1):
        
        if (sys.argv[1].lower()=="-v"):
            verbose = True
                      
    # finds current working dir
    cwd = os.getcwd()
  
    formats = ('.jpg', '.jpeg')
      
    # looping through all the files
    # in a current directory
    for file in os.listdir(cwd):
        
        # If the file format is JPG or JPEG
        if os.path.splitext(file)[1].lower() in formats:
            print('compressing', file)
            compressMe(file, verbose)
  
    print("Done")
  
# Driver code
if __name__ == "__main__":
    main()

压缩前的文件夹

如何使用Python和PIL来压缩图像?

运行文件前的文件夹

执行代码的命令行

PS:请在进入目录后运行代码。

如何使用Python和PIL来压缩图像?

执行代码的命令行

执行代码后的文件夹。

如何使用Python和PIL来压缩图像?

运行代码后的文件夹

你可以清楚地看到压缩的文件。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程