Làm cách nào để thay đổi kích thước jpeg trong python?

Hầu hết hình ảnh kỹ thuật số là một mặt phẳng pixel hai chiều và nó có chiều rộng và chiều cao. Mô-đun Hình ảnh từ thư viện gối có kích thước thuộc tính. Tuple này bao gồm chiều rộng và chiều cao của hình ảnh như các phần tử của nó. Để thay đổi kích thước hình ảnh, bạn gọi phương thức resize[] của lớp hình ảnh gối bằng cách cho chiều rộng và chiều cao

Thay đổi kích thước và lưu hình ảnh đã thay đổi kích thước

Chương trình thay đổi kích thước và lưu hình ảnh đã thay đổi kích thước được đưa ra bên dưới -

#Import required Image library
from PIL import Image

#Create an Image Object from an Image
im = Image.open["images/cat.jpg"]

#Display actual image
im.show[]

#Make the new image half the width and half the height of the original image
resized_im = im.resize[[round[im.size[0]*0.5], round[im.size[1]*0.5]]]

#Display the resized imaged
resized_im.show[]

#Save the cropped image
resized_im.save['resizedBeach1.jpg']

đầu ra

Nếu bạn lưu chương trình trên dưới dạng Ví dụ. py và thực thi, nó sẽ hiển thị ảnh gốc và ảnh đã thay đổi kích thước bằng tiện ích hiển thị PNG tiêu chuẩn, như sau -

Vì các nền tảng truyền thông xã hội khác nhau thường yêu cầu các định dạng hình ảnh và chiều rộng khác nhau, nên việc thay đổi kích thước hình ảnh tự động bằng python chắc chắn có thể giúp bạn tiết kiệm thời gian

Kết quả học tập

  • Để tìm hiểu cách thay đổi kích thước một hình ảnh
  • Để tìm hiểu cách thay đổi kích thước nhiều hình ảnh trong thư mục làm việc hiện tại
from PIL import Image
import PIL
import os
import glob

Cách thay đổi kích thước một hình ảnh bằng Python

Cũng như nén hình ảnh, chúng tôi cũng có thể thay đổi kích thước hình ảnh thành

  • Chiều rộng cơ sở cụ thể
  • Chiều cao cơ sở cụ thể
base_width = 360
image = Image.open['example-image.jpg']
width_percent = [base_width / float[image.size[0]]]
hsize = int[[float[image.size[1]] * float[width_percent]]]
image = image.resize[[base_width, hsize], PIL.Image.ANTIALIAS]
image.save['resized_compressed_image.jpg']

Bây giờ hãy tìm hiểu từng dòng mã trên.

  1. Chúng tôi đặt chiều rộng cơ sở mà chúng tôi muốn hình ảnh được
  2. Sau đó, chúng tôi mở hình ảnh bằng Image. mở ['tên_hình_ảnh. jpg’]
  3. Chúng tôi tính tỷ lệ khung hình cho chiều rộng bằng cách thực hiện. base_width / chiều rộng hình ảnh hiện có
  4. Điều này cung cấp cho chúng tôi một số tỷ lệ mà chúng tôi có thể nhân với chiều cao để có được chiều cao chính xác để tạo base_width của chúng tôi
  5. Sau đó, chúng tôi thay đổi kích thước hình ảnh dựa trên hai giá trị [base_width và hsize]
  6. Hình ảnh sau đó được lưu với hình ảnh. lưu ['tên_hình_ảnh. jpg']

Chúng ta cũng có thể làm ngược lại và lấy chiều cao cụ thể với đoạn mã sau

base_height = 360
image = Image.open[‘fullsized_image.jpg']
hpercent = [base_height / float[image.size[1]]]
wsize = int[[float[image.size[0]] * float[hpercent]]]
image = image.resize[[wsize, base_height], PIL.Image.ANTIALIAS]
image.save[‘resized_image.jpg']

Cách tạo hình thu nhỏ trong khi giữ nguyên tỷ lệ khung hình

Chúng tôi cũng có thể tạo hình ảnh thu nhỏ của hình ảnh bằng cách sử dụng

img.thumbnail[size, resample=3, reducing_gap=2.0]

Make this image into a thumbnail.  This method modifies the
image to contain a thumbnail version of itself, no larger than
the given size.  This method calculates an appropriate thumbnail
size to preserve the aspect of the image
picture = Image.open['example-image.jpg']
picture.thumbnail[size=[200,200]]
print[picture.size]
# [200, 133]

Cách thay đổi kích thước nhiều hình ảnh trong thư mục làm việc hiện tại

directory_files = os.listdir[]
multiple_images = [file for file in directory_files if 'example' in file and file.endswith[['.jpg', '.png']]]

Đầu tiên, chúng tôi liệt kê tất cả các tệp và thư mục bên trong thư mục làm việc hiện tại. Sau đó, chúng tôi tìm thấy bất kỳ. jpg và. các tệp png có từ ví dụ trong tên của chúng

print[multiple_images]
# ['example-image.jpg', 'example-image-two.jpg']
________số 8_______

Sau đó, chúng tôi lặp qua từng hình ảnh, mở nó và sau đó thay đổi kích thước hình ảnh

Cách thay đổi kích thước và nén nhiều hình ảnh trong thư mục làm việc hiện tại

Tuy nhiên, trong kịch bản của chúng tôi, chúng tôi không chỉ muốn giảm kích thước của hình ảnh mà còn nén chúng, do đó chúng tôi sẽ thêm vào tham số sau vào dòng này

img.save['resized-image_'+image, optimize=True, quality=30]
for image in multiple_images:
    img = Image.open[image]
    img.thumbnail[size=[300,300]]
    print[img]
    img.save['resized-image_'+image, optimize=True, quality=30]

Giờ đây, bạn có thể dễ dàng thay đổi kích thước và nén hình ảnh của mình bằng Python 🥰

Trong hướng dẫn tiếp theo, bạn sẽ học cách chuyển đổi hình ảnh jpg và png sang các định dạng hình ảnh thế hệ tiếp theo, chẳng hạn như. webp 🔥

Chủ Đề