当前位置:优草派 > 问答 > Python问答

python缩小图片大小

标签: Python  Python开发  Python  作者: lhtsj2010

回答:

随着数码相机和智能手机的普及,我们拍摄的照片大小越来越大,这不仅占用了我们设备的存储空间,也给网络传输带来了不便。为了解决这个问题,我们可以使用Python来缩小图片的大小,从而减少其所占用的存储空间和传输时间。

一、使用Pillow库

Pillow是Python的一个图像处理库,它可以打开、操作和保存各种图像文件格式。使用Pillow可以很方便地缩小图片的大小。下面是一个示例代码:

```Python

from PIL import Image

def resize_image(input_image_path, output_image_path, size):

original_image = Image.open(input_image_path)

width, height = original_image.size

print(f"The original image size is {width} wide x {height} high")

resized_image = original_image.resize(size)

width, height = resized_image.size

print(f"The resized image size is {width} wide x {height} high")

resized_image.save(output_image_path)

if __name__ == '__main__':

resize_image('input.jpg', 'output.jpg', (800, 600))

```

在上面的代码中,我们使用了Pillow库中的Image.open()函数来打开原始图片,然后使用resize()函数来缩小图片的大小,并使用save()函数保存缩小后的图片。需要注意的是,resize()函数的参数是一个元组,表示缩小后的图片尺寸。

二、使用OpenCV库

OpenCV是一个开源的计算机视觉库,它可以处理图像和视频流,并提供了许多图像处理和计算机视觉算法。使用OpenCV库也可以很容易地缩小图片的大小。下面是一个示例代码:

```Python

import cv2

def resize_image(input_image_path, output_image_path, size):

image = cv2.imread(input_image_path)

print(f"The original image size is {image.shape}")

resized_image = cv2.resize(image, size)

print(f"The resized image size is {resized_image.shape}")

cv2.imwrite(output_image_path, resized_image)

if __name__ == '__main__':

resize_image('input.jpg', 'output.jpg', (800, 600))

```

在上面的代码中,我们使用了OpenCV库中的cv2.imread()函数来打开原始图片,然后使用cv2.resize()函数来缩小图片的大小,并使用cv2.imwrite()函数保存缩小后的图片。需要注意的是,cv2.resize()函数的第二个参数是一个元组,表示缩小后的图片尺寸。

三、使用skimage库

skimage是Python的一个图像处理库,它是基于scikit-learn、matplotlib和NumPy等库开发的。skimage库提供了许多图像处理和计算机视觉算法,包括缩小图片的功能。下面是一个示例代码:

```Python

import skimage.io

import skimage.transform

def resize_image(input_image_path, output_image_path, size):

image = skimage.io.imread(input_image_path)

print(f"The original image size is {image.shape}")

resized_image = skimage.transform.resize(image, size)

print(f"The resized image size is {resized_image.shape}")

skimage.io.imsave(output_image_path, resized_image)

if __name__ == '__main__':

resize_image('input.jpg', 'output.jpg', (800, 600))

```

在上面的代码中,我们使用了skimage库中的skimage.io.imread()函数来打开原始图片,然后使用skimage.transform.resize()函数来缩小图片的大小,并使用skimage.io.imsave()函数保存缩小后的图片。需要注意的是,skimage.transform.resize()函数的第二个参数是一个元组,表示缩小后的图片尺寸。

综上所述,Python提供了多种方法来缩小图片的大小,包括使用Pillow库、OpenCV库和skimage库等。使用这些库可以很方便地处理大量的图片,减少其所占用的存储空间和传输时间,提高我们处理图片的效率。

TOP 10
  • 周排行
  • 月排行