Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

+ 7

Cài đặt PIL (Thư viện hình ảnh Python): Sau đó: từ PIL Nhập hình ảnh myImage = Image.open ("your_image_here"); myimage.show ();

Ngày 16 tháng 9 năm 2020, 8:33 sáng

Vaibhav Singh

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

+ 3

IDK Ý bạn là gì khi chèn nhưng bạn có thể mở và hiển thị hình ảnh bằng thư viện gối: Từ hình ảnh nhập PIL với Image.open ('Đường dẫn hình ảnh') dưới dạng IMG: IMG.Show ()

Ngày 16 tháng 9 năm 2020, 8:34 sáng

BAGON

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

+ 2

Cảm ơn

Ngày 16 tháng 9 năm 2020, 8:34 sáng

BAGON

Đã hỏi 9 năm, 6 tháng trước 9 years, 6 months ago

Đã xem 148k lần 148k times

Làm thế nào để bạn nhập hoặc chèn một hình ảnh bằng python.

Khi được hỏi ngày 8 tháng 5 năm 2013 lúc 14:09May 8, 2013 at 14:09

Daniel Turnerdaniel TurnerDaniel Turner

1292 Huy hiệu vàng6 Huy hiệu bạc12 Huy hiệu đồng2 gold badges6 silver badges12 bronze badges

5

Cài đặt PIL (Thư viện hình ảnh Python):

then:

from PIL import Image
myImage = Image.open("your_image_here");
myImage.show();

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Đã trả lời ngày 8 tháng 5 năm 2013 lúc 14:19May 8, 2013 at 14:19

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Sameer H. Ibrasameer H. IbraSameer H. Ibra

1.8162 huy hiệu vàng17 Huy hiệu bạc25 Huy hiệu đồng2 gold badges17 silver badges25 bronze badges

2

Thư viện hình ảnh Python (PIL) là gói Python của bên thứ 3, thêm khả năng xử lý hình ảnh cho trình thông dịch Python của bạn. Nó cho phép bạn xử lý ảnh và thực hiện nhiều thao tác tệp hình ảnh phổ biến. Phiên bản hiện tại của phần mềm này nằm ở Pillow, là một cái nĩa của PIL gốc để hỗ trợ Python 3. Một số gói Python khác, như WxPython và Báo cáo, sử dụng gối để hỗ trợ tải nhiều loại tệp hình ảnh khác nhau. Bạn có thể sử dụng gối cho một số trường hợp sử dụng bao gồm các trường hợp sau:Python Imaging Library (PIL) is a 3rd party Python package that adds image processing capabilities to your Python interpreter. It allows you to process photos and do many common image file manipulations. The current version of this software is in Pillow, which is a fork of the original PIL to support Python 3. Several other Python packages, such as wxPython and ReportLab, use Pillow to support loading many different image file types. You can use Pillow for several use cases including the following:

  • Đang xử lý hình ảnh
  • Lưu trữ hình ảnh
  • Xử lý hàng loạt
  • Hiển thị hình ảnh qua tkinter

Trong bài viết này, bạn sẽ học cách làm như sau với gối:

  • Mở hình ảnh
  • Hình ảnh cắt xén
  • Sử dụng bộ lọc
  • Thêm biên giới
  • Thay đổi kích thước hình ảnh

Như bạn có thể thấy, gối có thể được sử dụng cho nhiều loại xử lý hình ảnh. Những hình ảnh được sử dụng trong bài viết này là một số tác giả đã tự chụp. Chúng được bao gồm trong các ví dụ mã trên GitHub. Xem phần giới thiệu để biết thêm chi tiết.

Bây giờ chúng ta hãy bắt đầu bằng cách cài đặt gối!

Cài đặt gối

Cài đặt gối rất dễ thực hiện với

python -m pip install pillow
2. Đây là cách bạn sẽ làm điều đó sau khi mở cửa sổ thiết bị đầu cuối hoặc bảng điều khiển:

python -m pip install pillow

Bây giờ gối đó đã được cài đặt, bạn đã sẵn sàng để bắt đầu sử dụng nó!

Mở hình ảnh

Hình ảnh cắt xén

  • https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html

Sử dụng bộ lọc

Thêm biên giới

# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()

Thay đổi kích thước hình ảnh

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Như bạn có thể thấy, gối có thể được sử dụng cho nhiều loại xử lý hình ảnh. Những hình ảnh được sử dụng trong bài viết này là một số tác giả đã tự chụp. Chúng được bao gồm trong các ví dụ mã trên GitHub. Xem phần giới thiệu để biết thêm chi tiết.

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')

Bây giờ chúng ta hãy bắt đầu bằng cách cài đặt gối!

Cài đặt gối

Cài đặt gối rất dễ thực hiện với

python -m pip install pillow
2. Đây là cách bạn sẽ làm điều đó sau khi mở cửa sổ thiết bị đầu cuối hoặc bảng điều khiển:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Để có được biểu đồ từ hình ảnh này, bạn sẽ sử dụng phương thức

# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
1 của hình ảnh. Sau đó, bạn sẽ sử dụng matplotlib để vẽ nó ra. Để xem một cách mà bạn có thể làm điều đó, hãy tạo một tệp mới có tên
# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
2 và thêm mã này vào nó:

# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')

Khi bạn chạy mã này, bạn mở hình ảnh như trước. Sau đó, bạn trích xuất biểu đồ từ nó và chuyển danh sách các giá trị cho đối tượng matplotlib của bạn nơi bạn gọi hàm

# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
3. Hàm
# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
3 có trong danh sách các giá trị và số lượng thùng có chiều rộng bằng nhau trong phạm vi của các giá trị.

Khi bạn chạy mã này, bạn sẽ thấy biểu đồ sau:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Biểu đồ này cho bạn thấy các giá trị âm trong hình ảnh đã được đề cập trước đó. Bạn có thể thử truyền trong một số hình ảnh khác có trên GitHub để xem các biểu đồ khác nhau hoặc hoán đổi trong một số hình ảnh của riêng bạn để xem biểu đồ của chúng.

Bây giờ chúng ta hãy khám phá cách bạn có thể sử dụng gối để cắt hình ảnh!

Hình ảnh cắt xén

Khi bạn đang chụp ảnh, tất cả quá thường xuyên, chủ đề của bức ảnh sẽ di chuyển hoặc bạn không phóng to đủ xa. Điều này dẫn đến một bức ảnh mà trọng tâm của hình ảnh không thực sự là trung tâm. Để khắc phục sự cố này, bạn có thể cắt hình ảnh thành phần đó của hình ảnh mà bạn muốn làm nổi bật.

Gối có chức năng này tích hợp. Để xem nó hoạt động như thế nào, hãy tạo một tệp có tên

# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
5 và thêm mã sau vào nó:

# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')

Hàm

# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
6 đi theo đường dẫn của tệp mà bạn muốn cắt cũng như đường dẫn đến tệp bị cắt mới. Sau đó, bạn
# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
7 tệp như trước và gọi
# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
8. Phương pháp này lấy tọa độ X/Y bắt đầu và kết thúc mà bạn đang sử dụng để cắt cùng. Bạn đang tạo một hộp được sử dụng để cắt xén.

Chúng ta hãy chụp ảnh thú vị này về vịt và thử cắt nó bằng mã trên:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Bây giờ khi bạn chạy mã chống lại điều này, bạn sẽ kết thúc với hình ảnh bị cắt sau:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Các tọa độ bạn sử dụng để cắt với Will thay đổi theo ảnh. Trên thực tế, có lẽ bạn nên thay đổi mã này để nó chấp nhận tọa độ cây trồng làm đối số. Bạn có thể tự làm điều đó như một bài tập về nhà nhỏ. Phải mất một số thử nghiệm và lỗi để tìm ra hộp giới hạn cây trồng để sử dụng. Bạn có thể sử dụng một công cụ như GIMP để giúp bạn bằng cách vẽ một hộp giới hạn với GIMP và lưu ý các tọa độ mà nó cung cấp cho bạn để thử với gối.

Bây giờ chúng ta hãy tiếp tục và tìm hiểu về việc áp dụng các bộ lọc vào hình ảnh của bạn!

Sử dụng bộ lọc

Gói gối có một số bộ lọc mà bạn có thể áp dụng cho hình ảnh của mình. Đây là những bộ lọc hiện tại được hỗ trợ:

  • MƠ HỒ
  • VIỀN
  • CHI TIẾT
  • EDGE_ENHANCE
  • EDGE_ENHANCE_MORE
  • T nổi
  • FIND_EDGES
  • Làm sắc nét
  • TRƠN TRU
  • SMOOTH_MORE

Hãy sử dụng hình ảnh bướm từ trước đó để thử nghiệm một vài bộ lọc này. Đây là hình ảnh bạn sẽ sử dụng:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Bây giờ bạn có một hình ảnh để sử dụng, hãy tiếp tục và tạo một tệp mới có tên

# open_image.py

from PIL import Image

image = Image.open('jellyfish.jpg')
image.show()
9 và thêm mã này vào nó để thử bộ lọc
# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
0 của Pillow:

# blur.py

from PIL import Image
from PIL import ImageFilter

def blur(path, modified_photo):
    image = Image.open(path)
    blurred_image = image.filter(ImageFilter.BLUR)
    blurred_image.save(modified_photo)

if __name__ == '__main__':
    blur('butterfly.jpg', 'butterfly_blurred.jpg')

Để thực sự sử dụng bộ lọc trong gối, bạn cần nhập

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
1. Sau đó, bạn vượt qua bộ lọc cụ thể mà bạn muốn sử dụng cho phương thức
# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
2. Khi bạn gọi
# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
2, nó sẽ trả về một đối tượng hình ảnh mới. Sau đó, bạn lưu tệp đó vào đĩa.

Đây là hình ảnh mà bạn sẽ nhận được khi bạn chạy mã:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Trông có vẻ mờ, vì vậy bạn có thể coi đây là một thành công! Nếu bạn muốn nó thậm chí còn mờ hơn, bạn có thể chạy ảnh mờ trở lại thông qua kịch bản của bạn lần thứ hai.

Tất nhiên, đôi khi bạn chụp ảnh hơi mờ và bạn muốn mài chúng lên một chút. Gối bao gồm đó như một bộ lọc bạn cũng có thể áp dụng. Tạo một tệp mới có tên

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
4 và thêm mã này:

# sharpen.py

from PIL import Image
from PIL import ImageFilter

def sharpen(path, modified_photo):
    image = Image.open(path)
    sharpened_image = image.filter(ImageFilter.SHARPEN)
    sharpened_image.save(modified_photo)

if __name__ == '__main__':
    sharpen('butterfly.jpg', 'butterfly_sharper.jpg')

Tại đây, bạn chụp ảnh bướm ban đầu và áp dụng bộ lọc

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
5 cho nó trước khi lưu nó ra. Khi bạn chạy mã này, kết quả của bạn sẽ trông như thế này:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Tùy thuộc vào thị lực của bạn và chất lượng màn hình của bạn, bạn có thể hoặc không thể thấy nhiều sự khác biệt ở đây. Tuy nhiên, bạn có thể yên tâm rằng nó hơi sắc nét hơn.

Bây giờ chúng ta hãy tìm hiểu làm thế nào bạn có thể thêm đường viền vào hình ảnh của mình!

Thêm biên giới

Một cách để làm cho ảnh của bạn trông chuyên nghiệp hơn là thêm biên giới cho chúng. Gối làm cho điều này khá dễ thực hiện thông qua mô -đun

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
6 của họ. Nhưng trước khi bạn có thể thực hiện bất kỳ biên giới nào, bạn cần một hình ảnh. Đây là cái bạn sẽ sử dụng:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Bây giờ bạn có một hình ảnh đẹp để phát xung quanh, hãy tiếp tục và tạo một tệp có tên

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
7 và đặt mã này vào đó:

# border.py

from PIL import Image, ImageOps


def add_border(input_image, output_image, border):
    img = Image.open(input_image)

    if isinstance(border, int) or isinstance(border, tuple):
        bimg = ImageOps.expand(img, border=border)
    else:
        raise RuntimeError('Border is not an integer or tuple!')

    bimg.save(output_image)

if __name__ == '__main__':
    in_img = 'butterfly_grey.jpg'

    add_border(in_img, output_image='butterfly_border.jpg',
             border=100)

Hàm

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
8 có 3 đối số:

  • # get_image_info.py
    
    from PIL import Image
    
    def get_image_info(path):
        image = Image.open(path)
        print(f'This image is {image.width} x {image.height}')
        exif = image._getexif()
        print(exif)
    
    if __name__ == '__main__':
        get_image_info('ducks.jpg')
    
    9 - hình ảnh bạn muốn thêm đường viền vào
  • # get_histrogram.py
    
    import matplotlib.pyplot as plt
    
    from PIL import Image
    
    def get_image_histrogram(path):
        image = Image.open(path)
        histogram = image.histogram()
        plt.hist(histogram, bins=len(histogram))
        plt.xlabel('Histogram')
        plt.show()
    
    if __name__ == '__main__':
        get_image_histrogram('butterfly.jpg')
    
    0 - Hình ảnh có đường viền mới được áp dụng
  • # get_histrogram.py
    
    import matplotlib.pyplot as plt
    
    from PIL import Image
    
    def get_image_histrogram(path):
        image = Image.open(path)
        histogram = image.histogram()
        plt.hist(histogram, bins=len(histogram))
        plt.xlabel('Histogram')
        plt.show()
    
    if __name__ == '__main__':
        get_image_histrogram('butterfly.jpg')
    
    1 - Lượng đường viền để áp dụng trong pixel

Trong mã này, bạn nói với Gối rằng bạn muốn thêm đường viền 100 pixel vào bức ảnh mà bạn đi vào. Khi bạn vượt qua số nguyên, số nguyên đó được sử dụng cho đường viền ở cả bốn phía. Màu mặc định của đường viền là màu đen. Phương pháp chính ở đây là

# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
2, có trong đối tượng hình ảnh và số lượng biên giới.

Khi bạn chạy mã này, bạn sẽ kết thúc với kết quả đáng yêu này:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Bạn có thể vượt qua trong một bộ giá trị để làm cho đường viền có chiều rộng khác nhau. Ví dụ: nếu bạn đã vượt qua trong

# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
3, điều đó sẽ thêm đường viền 10 pixel ở bên trái và bên phải của hình ảnh và đường viền 50 pixel ở trên cùng và dưới cùng. Hãy thử làm điều đó với mã ở trên và chạy lại nó. Nếu bạn làm như vậy, bạn sẽ nhận được như sau:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Điều đó không đẹp? Nếu bạn muốn nhận được thực sự lạ mắt, bạn có thể vượt qua các giá trị khác nhau cho cả bốn mặt của hình ảnh. Nhưng có lẽ không có nhiều trường hợp sử dụng nơi có ý nghĩa.

Có một đường viền màu đen là tốt đẹp và tất cả, nhưng đôi khi bạn sẽ muốn thêm một chút pizazz vào hình ảnh của bạn. Bạn có thể thay đổi màu đường viền đó bằng cách chuyển trong đối số

# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
4 thành
# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
2. Đối số này có một màu được đặt tên hoặc màu RGB.

Tạo một tệp mới có tên

# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
6 và thêm mã này vào nó:

# colored_border.py

from PIL import Image, ImageOps

def add_border(input_image, output_image, border, color=0):
    img = Image.open(input_image)

    if isinstance(border, int) or isinstance(
        border, tuple):
        bimg = ImageOps.expand(img,
                               border=border, 
                               fill=color)
    else:
        msg = 'Border is not an integer or tuple!'
        raise RuntimeError(msg)

    bimg.save(output_image)

if __name__ == '__main__':
    in_img = 'butterfly_grey.jpg'

    add_border(in_img,
               output_image='butterfly_border_red.jpg',
               border=100,
               color='indianred')

Bây giờ hàm

# get_image_info.py

from PIL import Image

def get_image_info(path):
    image = Image.open(path)
    print(f'This image is {image.width} x {image.height}')
    exif = image._getexif()
    print(exif)

if __name__ == '__main__':
    get_image_info('ducks.jpg')
8 của bạn có một đối số
# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
8 mà bạn chuyển sang phương thức
# get_histrogram.py

import matplotlib.pyplot as plt

from PIL import Image

def get_image_histrogram(path):
    image = Image.open(path)
    histogram = image.histogram()
    plt.hist(histogram, bins=len(histogram))
    plt.xlabel('Histogram')
    plt.show()

if __name__ == '__main__':
    get_image_histrogram('butterfly.jpg')
2. Khi bạn chạy mã này, bạn sẽ thấy điều này cho kết quả của mình:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Trông trông khá đẹp. Bạn có thể thử nghiệm xung quanh với các màu khác nhau hoặc áp dụng màu yêu thích của riêng bạn làm biên giới.

Mục tiếp theo trong chuyến tham quan gối của bạn là tìm hiểu cách thay đổi kích thước hình ảnh!

Thay đổi kích thước hình ảnh

Thay đổi kích thước hình ảnh với gối khá đơn giản. Bạn sẽ sử dụng phương pháp

# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
0 có một số nguyên được sử dụng để thay đổi kích thước hình ảnh. Để xem nó hoạt động như thế nào, bạn sẽ sử dụng bức ảnh đáng yêu của một con thằn lằn:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Bây giờ bạn có một bức ảnh, hãy tiếp tục và tạo một tệp mới có tên

# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
1 và đặt mã này vào đó:

python -m pip install pillow
0

Tại đây, bạn vượt qua trong ảnh thằn lằn và bảo Pillow thay đổi kích thước thành 600 x 400. Khi bạn chạy mã này, đầu ra sẽ cho bạn biết rằng ảnh gốc là 1191 x 1141 pixel trước khi nó thay đổi kích thước cho bạn.

Kết quả của việc chạy mã này trông như thế này:

Hướng dẫn can you put an image in python? - bạn có thể đặt một hình ảnh trong python?

Vâng, điều đó có vẻ hơi kỳ quặc! Gối không thực sự làm bất kỳ tỷ lệ nào khi nó thay đổi kích thước hình ảnh. Thay vào đó, gối sẽ kéo dài hoặc mâu thuẫn hình ảnh của bạn để phù hợp với các giá trị bạn bảo nó sử dụng.

Những gì bạn muốn làm là mở rộng hình ảnh. Để thực hiện công việc đó, bạn cần tạo một tệp mới có tên

# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
2 và thêm một số mã mới vào nó. Đây là mã bạn cần:scale the image. To make that work, you need to create a new file named
# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
2 and add some new code to it. Here's the code you need:

python -m pip install pillow
1

Lần này, bạn cho phép người dùng chỉ định cả chiều rộng và chiều cao. Nếu người dùng chỉ định chiều rộng, chiều cao hoặc cả hai, thì câu lệnh có điều kiện sử dụng thông tin đó để tạo

# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
3. Khi nó có giá trị
# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
3 được tính toán, bạn chuyển điều đó đến
# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
5 và lưu kết quả. Nếu người dùng chỉ định cả hai giá trị,
# cropping.py

from PIL import Image

def crop_image(path, cropped_path):
    image = Image.open(path)
    cropped = image.crop((40, 590, 979, 1500))
    cropped.save(cropped_path)

if __name__ == '__main__':
    crop_image('ducks.jpg', 'ducks_cropped.jpg')
5 sẽ duy trì tỷ lệ khung hình một cách chính xác khi thay đổi kích thước.

Khi bạn chạy mã này, bạn sẽ thấy rằng kết quả là phiên bản nhỏ hơn của hình ảnh gốc và hiện nó vẫn duy trì tỷ lệ khung hình của nó.

Gói lên

Gối rất hữu ích để làm việc với hình ảnh bằng Python. Trong bài viết này, bạn đã học cách làm như sau:

  • Mở hình ảnh
  • Hình ảnh cây trồng
  • Sử dụng bộ lọc
  • Thêm biên giới
  • Thay đổi kích thước hình ảnh

Bạn có thể làm nhiều hơn với gối hơn những gì được hiển thị ở đây. Ví dụ, bạn có thể thực hiện các cải tiến hình ảnh khác nhau, như thay đổi độ tương phản hoặc độ sáng của hình ảnh. Hoặc bạn có thể tổng hợp nhiều hình ảnh với nhau. Có nhiều ứng dụng khác mà bạn có thể sử dụng gối cho. Bạn chắc chắn nên kiểm tra gói ra và đọc tài liệu của nó để tìm hiểu thêm.

Đọc liên quan

Bài viết này dựa trên một chương từ Python 101, phiên bản thứ 2, bạn có thể mua trên LeanPub hoặc Amazon.Python 101, 2nd Edition, which you can purchase on Leanpub or Amazon.

Nếu bạn muốn tìm hiểu thêm Python, thì hãy xem các hướng dẫn sau:

  • Python 101 - ghi lại mã của bạn

  • Python 101: Giới thiệu để làm việc với JSON

  • Python 101 - Tạo nhiều quy trình

Bạn có thể đặt hình ảnh vào Python không?

Thư viện hình ảnh Python (PIL) là gói Python của bên thứ 3, thêm khả năng xử lý hình ảnh cho trình thông dịch Python của bạn.Nó cho phép bạn xử lý ảnh và thực hiện nhiều thao tác tệp hình ảnh phổ biến.. It allows you to process photos and do many common image file manipulations.

Python có hỗ trợ các tệp jpg không?

Thư viện Python cho phép Python thông qua các nhà phát triển .NET để chuyển đổi hình ảnh JPG một cách dễ dàng. NET developers to convert JPG images easily.