Сохранение изображения в файл в Python можно выполнить различными методами. Давайте подробно рассмотрим 6 вышеуказанных способов сохранить изображение в файл на Python.
- Метод 1: используя библиотеку OpenCV
- Метод 2: с помощью библиотеки PIL
- Метод 3: используя библиотеку matplotlib
- Метод 4: используя библиотеку URLLIB
- Метод 5: с помощью модуля Pickle
- Метод 6: используя библиотеку Skimage
Метод 1: используя библиотеку OpenCV
OpenCV — популярная библиотека компьютерного зрения, которая предоставляет функцию cv2.imwrite() для сохранения изображения в файл на Python.
# Import the necessary libraries import cv2 import os # Set the file path for the source image path = r'C:\Users\Administrator.SHAREPOINTSKY\Downloads\dora.jpg' # Set the directory for saving the image directory = r'C:\Users\Administrator.SHAREPOINTSKY\Desktop\Work' # Load the image using OpenCV img = cv2.imread(path) # Change the working directory to the specified directory for saving the image os.chdir(directory) # Print the list of files in the directory before saving the image print("Before saving") print(os.listdir(directory)) # Save the image with the filename "cat.jpg" filename = 'cat.jpg' cv2.imwrite(filename, img) # Print the list of files in the directory after saving the image print("After saving") print(os.listdir(directory))
Приведенный выше код использует библиотеки OpenCV и ОС в Python для выполнения следующих задач:
- Импортирует необходимые библиотеки: cv2 и os.
- Устанавливает путь к файлу исходного изображения как путь, который представляет собой строку, представляющую расположение файла в локальной системе.
- Задает каталог для сохранения изображения в каталоге, который представляет собой строку, представляющую расположение каталога в локальной системе.
- Загружает изображение с помощью функции cv2.imread() и сохраняет его в переменной img.
- Изменяет текущий рабочий каталог на указанный каталог для сохранения изображения с помощью функции os.chdir().
- Печатает список файлов в каталоге перед сохранением изображения с помощью функции os.listdir() и оператора print().
- Сохраняет изображение в указанный каталог с именем файла cat.jpg с помощью функции cv2.imwrite().
- Печатает список файлов в каталоге после сохранения изображения с помощью функции os.listdir() и оператора print().
Здесь мы можем получить список каталогов до и после сохранения в качестве вывода. Вы можете обратиться к скриншоту ниже для вывода.
Метод 2: с помощью библиотеки PIL
PIL(Python Imaging Library) — еще одна популярная библиотека для манипулирования изображениями в Python. Он предоставляет метод Image.save() для сохранения изображения в файл.
# Import the Image module from the PIL library from PIL import Image import PIL # Open the image with the specified file path picture = Image.open(r'Downloads\3.jpg') # Save the image with the specified file name picture = picture.save("dolls.jpg")
Приведенный выше код использует библиотеку изображений Python(PIL) для выполнения следующих задач:
- Импортирует модуль изображения из библиотеки PIL с помощью оператора импорта изображения from PIL.
- Импортирует библиотеку PIL с помощью оператора import PIL.
- Открывает изображение по указанному пути к файлу с помощью функции Image.open() и сохраняет его в переменной изображения.
- Сохраняет изображение с указанным именем файла Dolls.jpg, используя метод .save(). Метод .save() является методом класса Image и используется для сохранения изображения на диск. Метод обновляет переменную изображения сохраненным изображением.
Метод 3: используя библиотеку matplotlib
Matplotlib — это библиотека построения графиков на Python, которая предоставляет функцию savefig() для сохранения фигуры в файл. Чтобы сохранить изображение, вы можете сначала построить его с помощью Matplotlib, а затем сохранить с помощью функции savefig().
# Import the matplotlib.pyplot library as plt import matplotlib.pyplot as plt # Read the image file img = plt.imread("/content/simon-berger.jpg") # Display the image plt.imshow(img) # Save the image plt.savefig("saved_image.jpg")
Приведенный выше код использует библиотеку matplotlib для выполнения следующих задач:
- Импортирует модуль Pyplot Matplotlib, используя оператор import matplotlib.pyplot as plt.
- Считывает файл изображения по указанному пути с помощью функции plt.imread() и сохраняет его в переменной img.
- Отображает изображение с помощью функции plt.imshow().
- Сохраняет изображение на диск с указанным именем файла save_image.jpg с помощью функции plt.savefig().
Метод 4: используя библиотеку URLLIB
Другой способ сохранить изображение в файл в Python — использовать библиотеку urllib. Библиотека urllib предоставляет функцию urlretrieve(), которую можно использовать для загрузки изображения по URL-адресу и сохранения его в файл.
# Import the urllib and PIL libraries import urllib.request from PIL import Image import PIL # Retrieve the image from the specified URL and print the result print(urllib.request.urlretrieve("https://bit.ly/3oAeohK")) # Open the image with the specified file name image = PIL.Image.open("new.png") # Show the image image.show()
Приведенный выше код использует urllib и библиотеку изображений Python(PIL) для выполнения следующих задач:
- Импортирует библиотеки urllib и PIL с помощью операторов import urllib.request и импорта изображений из PIL.
- Извлекает изображение по указанному URL-адресу с помощью функции urllib.request.urlretrieve() и сохраняет результат в файле new.png.
- Открывает изображение с указанным именем файла new.png с помощью функции PIL.Image.open() и сохраняет его в переменной изображения.
- Отображает изображение с помощью функции image.show().
URL-адрес сохраняется в формате изображения, как показано на снимке экрана ниже.
Метод 5: с помощью модуля Pickle
Модуль Pickle в Python также можно использовать для сохранения изображения в файл. Pickle — это модуль, который позволяет сериализовать и десериализовать объекты Python, включая изображения.
# Import the pickle and matplotlib.pyplot modules import pickle import matplotlib.pyplot as plt # Read the image file with the specified file path img = plt.imread("/content/saved_image.jpg") # Open the file with write binary mode to store the image using pickle with open("saved_image.pickle", "wb") as f: # Dump the image data into the file using pickle pickle.dump(img, f)
Приведенный выше код выполняет следующие задачи:
- Импортирует модули Pickle и matplotlib.pyplot.
- Считывает файл изображения по указанному пути /content/saved_image.jpg с помощью функции plt.imread() и сохраняет данные изображения в переменной img.
- Открывает файл с указанным именем save_image.pickle в двоичном режиме записи, используя оператор with open(“saved_image.pickle”, “wb”) as f:.
- Сбрасывает данные изображения, хранящиеся в переменной img, в открытый файл с помощью оператора Pickle.dump(img, f). Этот процесс сериализует данные изображения в двоичную форму и записывает их в файл, что позволяет сохранить их и получить позже.
Метод 6: используя библиотеку Skimage
Scikit-image — это библиотека для обработки изображений в Python, которая предоставляет функцию imsave() для сохранения изображения в файл.
# Import the imsave and imread functions from the skimage.io module from skimage.io import imsave, imread # Read the image file with the specified file path img = imread("/content/simon-berger.jpg") # Save the image to disk with the specified file name imsave("saved_image.jpg", img)
Приведенный выше код использует библиотеку Skimage для выполнения следующих задач:
- Импортирует функции imsave и imread из модуля Skimage.io с помощью оператора from Skimage.io import imsave, imread.
- Считывает файл изображения по указанному пути /content/simon-berger.jpg с помощью функции imread() и сохраняет его в переменной img.
- Сохраняет изображение на диск с указанным именем файла save_image.jpg с помощью функции imsave(). Переменная img передается как данные изображения, которые необходимо сохранить.