Requisito previo: PIL_working-images-python
Dado un directorio de imágenes, nuestro programa creará un nuevo directorio de imágenes basado en el tamaño de umbral dado.
Una función simple de Python3 que ingresa la ruta del archivo python, el ancho del umbral en píxeles y la altura del umbral en píxeles, busca todas las imágenes presentes en ese único directorio y crea un nuevo directorio que filtra todas las imágenes de acuerdo con el tamaño del umbral dado. o lo redimensiona al ancho y alto del umbral dado.
Pasos a seguir :
1. Instale las bibliotecas necesarias como PIL
2. Importe bibliotecas: PIL, shutil, os, os.path
3. Guarde el código como sizeFilter.py
4. Abra la Terminal (donde el archivo python está presente y se ejecuta)-> python sizeFilter.py
A continuación se muestra la implementación de Python3 del enfoque anterior:
# Python3 program to Filtering Images # based on Size Attributes from PIL import Image from shutil import copyfile import os, os.path def filterImages(path, thresholdWidth, thresholdHeight): # Defining images array for # identifying only image files imgs = [] # List of possible images extensions # add if you want more valid_images = [".jpg", ".gif", ".png", ".tga", ".jpeg", ".PNG", ".JPG", ".JPEG"] # Storing all images in images array (imgs) for f in os.listdir(path): ext = os.path.splitext(f)[1] if ext.lower() not in valid_images: continue imgs.append(f) # Checking whether the filteredImages # directory exists or not directory = os.path.dirname('filteredImages' + path) if not os.path.exists(directory): os.makedirs(directory) # Defining filteredIMages array for # storing all the images we need filteredImages = [] for i in imgs: image = Image.open(os.path.join(path, i)) # Storing width and height of a image width, height = image.size # if only width exceeds the thresholdWidth if (width > thresholdWidth and height <= thresholdHeight): image.resize((thresholdWidth, (thresholdWidth * height) // width)).save(i) # if only height exceeds the thresholdHeight elif (width <= thresholdWidth and height > thresholdHeight): image.resize(((thresholdHeight * width) // height, thresholdHeight)).save(i) # if both the parameters exceeds # the threshold attributes elif (width > thresholdWidth and height > thresholdHeight): image.resize((thresholdWidth, thresholdHeight)).save(i) copyfile(os.path.join(path, i), os.path.join(path + '/filteredImages', i)) filteredImages.append(i) # returning the filteredImages array return filteredImages # Driver Code if __name__ == '__main__': filteredImages = [] # Enter the path of the python sizeFilter # file, the thresholdWidth(in pixels) and # thresholdHeight(in pixels) filteredImages = filterImages("/home/SahilKhosla/Desktop/Current Project", 1000, 1000)
Producción :
Publicación traducida automáticamente
Artículo escrito por sahilkhoslaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA