Los formatos PNG y JPG se utilizan para ilustraciones de imágenes. Ambos formatos se utilizan para proporcionar una buena compatibilidad con ciertos tipos de imágenes, como PNG funciona mejor con dibujos lineales y gráficos de iconos, mientras que JPG funciona bien con fotografías. Sin embargo, ambos son interconvertibles entre sí para uso y almacenamiento de medios e imágenes. Python proporciona varias opciones para llevar a cabo la conversión de imágenes.
Método 1: Biblioteca de imágenes de Python (PIL)
Python proporciona soporte para el procesamiento de imágenes utilizando el paquete PIL (Biblioteca de imágenes de Python). Esta biblioteca proporciona una amplia compatibilidad con formatos de archivo, es decir, se puede utilizar para convertir las imágenes de un formato a otro. Este paquete se puede instalar en el entorno mediante el siguiente comando:
pip install Pillow
Este paquete proporciona un módulo denominado Imagen que se utiliza para crear y cargar nuevas imágenes en el entorno. También permite trabajar con formatos de imagen y sus orientaciones asociadas. Se utiliza para representar una imagen PIL. La sintaxis asociada es:
from PIL import Image
Las siguientes funciones del módulo Imagen se utilizan para convertir una imagen de PNG a JPG.
Image.open(): Abre e identifica un archivo de imagen. No carga el archivo, a menos que se realice explícitamente la operación load(). Simplemente abre la imagen sin analizar realmente el contenido de la imagen.
PIL.Image.open(fp, mode='r', formats=None)
Argumentos:
fp — Nombre de archivo, objeto pathlib.Path o un objeto de archivo.
modo — Siempre abierto en modo de lectura.
formatos — Una lista de formatos para realizar la operación de apertura de un archivo.
Tipo de retorno:
Un objeto de imagen.
Image.save(): Guarda la imagen con el nombre de archivo especificado. En caso de que no se especifique ninguna extensión, la extensión se analiza a partir del nombre de archivo especificado.
Image.save(fp, format=None, **params)
Argumentos:
fp — Nombre de archivo, objeto pathlib.Path o un objeto de archivo.
formato: formato opcional.
params — Parámetros adicionales para el escritor de imágenes.
Tipo de retorno:
No devuelve nada.
El siguiente código de muestra de Python se usa para convertir una imagen de PNG a JPG:
Python3
#importing the required package from PIL import Image #open image in png format img_png = Image.open('C:\gfg\img.png') #The image object is used to save the image in jpg format img_png.save('C:\gfg\modified_img.jpg')
Producción:
El siguiente era el archivo original en C:
El siguiente es el contenido de la misma carpeta después de la ejecución del programa:
Método 2: Usar OpenCV
La biblioteca OpenCV (Open Source Computer Vision) es una biblioteca de procesamiento de imágenes que realiza operaciones numéricas utilizando la sintaxis de MATLAB. Se puede incorporar a nuestro entorno mediante el siguiente comando:
pip install opencv-python
Después de la descarga, la biblioteca se puede importar al programa python usando el comando
import cv2
Nos proporciona varias funciones para manipular imágenes, por ejemplo, la función imread() que toma como argumento el nombre de la imagen de la máquina local. La función imwrite() se utiliza para realizar la manipulación y modificación de imágenes. El método tiene la siguiente firma:
imwrite ( path, image)
Argumentos:
ruta: una string que representa el nombre del archivo que debe incluir el formato de imagen de la extensión, como .jpg, .png, etc.
image — La imagen que se va a guardar.
Tipo de retorno:
Devuelve verdadero si la imagen se guarda correctamente.
Python3
#importing required packages and library import cv2 # Loading .png image png_img = cv2.imread('img.png') # converting to jpg file #saving the jpg file cv2.imwrite('modified_img.jpg', png_img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
Producción:
El siguiente directorio almacena una imagen con el nombre “img.png”:
El siguiente resultado se obtiene después de la ejecución del programa: