Hướng dẫn how do i resize and save an image in python? - làm cách nào để thay đổi kích thước và lưu hình ảnh trong python?

Theo dõi bản tin của chúng tôi.newsletter.

Hãy đứng đầu những suy nghĩ, chiến lược và hiểu biết mới nhất từ ​​các đồng nghiệp táo bạo.

Một lời giải thích nhanh về cách thay đổi kích thước hình ảnh trong Python trong khi vẫn giữ tỷ lệ khung hình tương tự.

Tôi yêu Python, và tôi đã học nó được một thời gian. Cách đây một thời gian, tôi đã viết một kịch bản Python nơi tôi cần thay đổi kích thước một loạt hình ảnh đồng thời giữ nguyên tỷ lệ khung hình (tỷ lệ) nguyên vẹn. Vì vậy, tôi nhìn xung quanh và tìm thấy Gối, một thư viện hình ảnh Python và "ngã ba thân thiện" của một thư viện cũ vừa gọi là Pil. & NBSP;

Để cài đặt gối, hãy sử dụng mô -đun pip của Python:

$ python3 -m pip install Pillow

Tỷ lệ theo chiều rộng

Đây là một tập lệnh cơ bản để thay đổi kích thước hình ảnh bằng mô -đun gối:

from PIL import Image

basewidth = 300
img = Image.open('fullsized_image.jpg')
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
img.save('resized_image.jpg')

Một vài dòng mã python này thay đổi kích thước một hình ảnh (fullsized_image.jpg) bằng cách sử dụng gối với chiều rộng 300 pixel, được đặt trong biến đổi biến đổi và chiều cao tỷ lệ thuận với chiều rộng mới. Chiều cao tỷ lệ được tính bằng cách xác định bao nhiêu phần trăm 300 pixel có chiều rộng ban đầu (img.size [0]) và sau đó nhân chiều cao ban đầu (img.size [1]) với tỷ lệ phần trăm đó. Giá trị chiều cao kết quả được lưu trong biến HSIZE.fullsized_image.jpg) using Pillow to a width of 300 pixels, which is set in the variable basewidth and a height proportional to the new width. The proportional height is calculated by determining what percentage 300 pixels is of the original width (img.size[0]) and then multiplying the original height (img.size[1]) by that percentage. The resulting height value is saved in the variable hsize.

Bạn có thể thay đổi cơ sở thành bất kỳ số nào khác nếu bạn cần một chiều rộng khác cho hình ảnh của mình. Ngoài ra, hãy chú ý tôi đã lưu hình ảnh được thay đổi kích thước dưới một tên khác, Resized_image.jpg, vì tôi cũng muốn bảo quản hình ảnh kích thước đầy đủ (FullSized_Image.jpg). Bạn không cần phải làm điều này, tất nhiên. Bạn có thể sử dụng cùng một tên tệp để ghi đè lên hình ảnh kích thước đầy đủ với hình ảnh kích thước, nếu đó là những gì bạn muốn.basewidth to any other number if you need a different width for your images. Also, notice I saved the resized image under a different name, resized_image.jpg, because I wanted to preserve the full-size image (fullsized_image.jpg) as well. You don't have to do this, of course. You can use the same filename to overwrite the full-size image with the resized image, if that is what you want.

Mở rộng theo chiều cao

Nếu chiều cao được cố định và biến đổi theo tỷ lệ chiều rộng, điều đó khá giống nhau, bạn chỉ cần chuyển đổi mọi thứ xung quanh một chút:

from PIL import Image

baseheight = 560
img = Image.open('fullsized_image.jpg')
hpercent = (baseheight / float(img.size[1]))
wsize = int((float(img.size[0]) * float(hpercent)))
img = img.resize((wsize, baseheight), Image.ANTIALIAS)
img.save('resized_image.jpg')

Thông báo BaseWidth bây giờ là BaseHeight, vì chiều cao được cố định. Trong dòng thứ ba, chúng tôi đang tính toán tỷ lệ phần trăm chiều cao, vì vậy chúng tôi cần img.size [1] thay vì img.size [0]. Thuộc tính kích thước là một tuple chứa chiều rộng và chiều cao tính bằng pixel; Kích thước [0] đề cập đến phần tử Tuple đầu tiên, là chiều rộng và kích thước [1] là phần tử thứ hai, là chiều cao. Dòng 4 cũng có công tắc này giữa kích thước [0] cho chiều rộng và kích thước [1] cho chiều cao.basewidth is now baseheight, since height is fixed. In the third line, we are calculating the height percentage, so we need img.size[1] instead of img.size[0]. The size attribute is a tuple containing width and height in pixels; size[0] refers to the first tuple element, which is the width, and size[1] is the second element, which is height. Line 4 also has this switch between size[0] for width and size[1] for height.

Được xuất bản lần đầu trên blog của Dayo Ntwari và được tái bản dưới sự cho phép Creative Commons.

Bài viết này đã được cập nhật vào tháng 1 năm 2021 bởi biên tập viên.

Hướng dẫn how do i resize and save an image in python? - làm cách nào để thay đổi kích thước và lưu hình ảnh trong python?

Một Sysadmin Nigeria Rwandan, và Linux và Foss Geek, sống ở Kigali, Rwanda. Tôi chuyên quản lý máy chủ Linux. Phân phối yêu thích của tôi là Linux Mint và Gentoo. Tôi thích viết mã trong Python và sử dụng Plone. Tôi hiện đang dạy mình Django. Tôi nói tiếng Đức trôi chảy, và học khoa học máy tính tại Đại học Khoa học ứng dụng ở Hamburg, Đức.

Người đóng góp

Hướng dẫn how do i resize and save an image in python? - làm cách nào để thay đổi kích thước và lưu hình ảnh trong python?

Nội dung liên quan

Hướng dẫn how do i resize and save an image in python? - làm cách nào để thay đổi kích thước và lưu hình ảnh trong python?
Công việc này được cấp phép theo giấy phép quốc tế Creative Commons Attribution-chia sẻ 4.0.

Làm thế nào để tôi thay đổi kích thước một hình ảnh thành một kích thước cụ thể trong Python?

Để thay đổi kích thước hoặc mở rộng một hình ảnh trong Python, hãy sử dụng CV2. thay đổi kích thước () chức năng ...
Trong khi bảo toàn tỷ lệ khung hình (tỷ lệ chiều cao trên chiều rộng của hình ảnh được duy trì), thì giảm (giảm kích thước của hình ảnh). ....
Trong khi không bảo toàn tỷ lệ khung hình, ....
Thay đổi kích thước hình ảnh theo chiều rộng và chiều cao cụ thể ..

Làm thế nào để tôi thay đổi kích thước một hình ảnh trong bộ dữ liệu trong Python?

Bạn có thể thay đổi kích thước nhiều hình ảnh trong Python với thư viện PIL tuyệt vời và một trợ giúp nhỏ của thư viện HĐH (hệ điều hành). Bằng cách sử dụng hàm Os.ListDir (), bạn có thể đọc tất cả các tên tệp trong một thư mục. Sau đó, tất cả những gì bạn phải làm là tạo một vòng lặp để mở, thay đổi kích thước và lưu mỗi hình ảnh trong thư mục.By using os. listdir() function you can read all the file names in a directory. After that, all you have to do is to create a for loop to open, resize and save each image in the directory.

Làm thế nào để tôi thay đổi kích thước một hình ảnh và giữ tỷ lệ khung hình trong Python?

Cách thay đổi kích thước hình ảnh theo tỷ lệ khung hình cố định với thư viện PIL của Python..
Dòng đầu tiên: Xác định một số cố định để tạo tỷ lệ ..
Dòng thứ hai: Mở hình ảnh ..
Dòng thứ ba: Tạo phần trăm chiều cao theo giá trị cố định của bạn ..
Dòng thứ tư: Tạo chiều rộng hình ảnh bằng cách nhân nó với giá trị chiều cao tỷ lệ ..

Làm thế nào để tôi tăng kích thước của một hình ảnh mà không mất chất lượng trong Python?

1 câu trả lời..
Vứt bỏ các pixel (nghĩa là loại bỏ các giá trị đơn hoặc bằng cách cắt một hình ảnh không phải là điều bạn muốn làm).
Pha trộn các pixel lân cận vào một số loại trung bình có trọng số và thay thế 476 pixel với 439 pixel thay đổi một chút ..