Trabajar con imágenes en Python

Trabajar con imágenes en Python

PIL es la biblioteca de imágenes de Python que proporciona al intérprete de Python capacidades de edición de imágenes. Fue desarrollado por Fredrik Lundh y varios otros colaboradores. Pillow es la bifurcación PIL amigable y una biblioteca fácil de usar desarrollada por Alex Clark y otros colaboradores. Trabajaremos con Pillow.

Instalación:

  • Linux: En la terminal Linux escriba lo siguiente:
     pip install Pillow  Instalación de pip a través del terminal:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Ventanas: Descargar el paquete Pillow apropiado según su versión de Python. Asegúrese de descargar de acuerdo con la versión de Python que tenga.

Aquí trabajaremos con el módulo de imagen, que proporciona una clase con el mismo nombre y proporciona muchas funciones para trabajar en nuestras imágenes. Para importar el módulo de imagen, nuestro código debe comenzar con la siguiente línea:

  from PIL import Image  

Operaciones con Imágenes:

  • Abra una imagen particular desde una ruta: Python
       #img = Image.open(path)    # On successful execution of this statement   # an object of Image type is returned and stored in img variable)   try  :   img   =   Image  .  open  (  path  )   except   IOError  :   pass   # Use the above statement within try block as it can    # raise an IOError if file cannot be found    # or image cannot be opened.   
  • Recuperar tamaño de imagen : Las instancias de la clase Imagen que se crean tienen muchos atributos, uno de sus atributos útiles es el tamaño. Python
       from   PIL   import   Image   filename   =   'image.webp'   with   Image  .  open  (  filename  )   as   image  :   width     height   =   image  .  size   #Image.size gives a 2-tuple and the width height can be obtained   
    Algunos otros atributos son: Imagen.ancho Imagen.alto Imagen.formato Imagen.info etc.
  • Guardar cambios en la imagen: Para guardar cualquier cambio que haya realizado en el archivo de imagen, debemos proporcionar la ruta y el formato de la imagen. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Rotar una imagen: La rotación de la imagen necesita el ángulo como parámetro para rotar la imagen. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #Angle given   img   =   img  .  rotate  (  180  )   #Saved in the same relative location   img  .  save  (  'rotated_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    rotar una imagen en Python Nota: Hay un indicador de expansión opcional disponible como uno de los argumentos del método de rotación que, si se establece en verdadero, expande la imagen de salida para hacerla lo suficientemente grande como para contener la imagen rotada por completo. Como se ve en el fragmento de código anterior, he usado una ruta relativa donde mi imagen se encuentra en el mismo directorio que mi archivo de código Python, también se puede usar una ruta absoluta.
  • Recortar una imagen: Image.crop(box) toma una coordenada de píxeles de 4 tuplas (izquierda, superior, derecha, inferior) y devuelve una región rectangular de la imagen utilizada. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   width     height   =   img  .  size   area   =   (  0     0     width  /  2     height  /  2  )   img   =   img  .  crop  (  area  )   #Saved in the same relative location   img  .  save  (  'cropped_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    recortando una imagen en Python
  • Cambiar el tamaño de una imagen: Image.resize(size): aquí el tamaño se proporciona como un ancho y alto de 2 tuplas. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   width     height   =   img  .  size   img   =   img  .  resize  ((  width  /  2     height  /  2  ))   #Saved in the same relative location   img  .  save  (  'resized_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    cambiar el tamaño de una imagen en Python
  • Pegar una imagen sobre otra imagen: El segundo argumento puede ser una tupla de 2 (especificando la esquina superior izquierda) o una tupla de 4 (izquierda superior derecha inferior); en este caso, el tamaño de la imagen pegada debe coincidir con el tamaño de esta región del cuadro o Ninguno, que equivale a (0 0). Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   #Image on which we want to paste   img   =   Image  .  open  (  'picture.webp'  )   #Relative Path   #Image which we want to paste   img2   =   Image  .  open  (  'picture2.webp'  )   img  .  paste  (  img2     (  50     50  ))   #Saved in the same relative location   img  .  save  (  'pasted_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   ##An additional argument for an optional image mask image is also available.   
    pegar una imagen sobre otra en Python
  • Obtener un histograma de una imagen: Esto devolverá un histograma de la imagen como una lista de recuentos de píxeles, uno por cada píxel de la imagen. (Un histograma de una imagen es una representación gráfica de la distribución tonal en una imagen digital. Contiene todos los valores de brillo contenidos en una imagen. Traza el número de píxeles para cada valor de brillo. Ayuda a realizar los ajustes de exposición). desde PIL importar imagen Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #Getting histogram of image   print   img  .  histogram  ()   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    obtener-un-histograma-de-imagen-en-copia-python


  • Transponer una imagen: Esta característica nos da la imagen especular de una imagen. Python
        from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #transposing image    transposed_img   =   img  .  transpose  (  Image  .  FLIP_LEFT_RIGHT  )   #Save transposed image   transposed_img  .  save  (  'transposed.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    transponer una imagen en Python
  • Divida una imagen en bandas individuales: Dividir una imagen en modo RGB crea tres imágenes nuevas, cada una de las cuales contiene una copia de las bandas individuales originales. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #splitting the image   print   img  .  split  ()   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    dividir una imagen en Python
  • mapa tobit: Conversión de una imagen a un mapa de bits X11 (un formato de imagen binaria de texto sin formato). Devuelve una cadena que contiene un mapa de bits X11; solo se puede usar para imágenes en modo 1, es decir, imágenes en blanco y negro de 1 bit de píxel. desde la imagen de importación PIL Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   print   img  .  mode   #converting image to bitmap   print   img  .  tobitmap  ()   print   type  (  img  .  tobitmap  ())   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    convertir imagen a mapa de bits en Python convertir imagen a bitmao en python
  • Creando una miniatura: Este método crea una miniatura de la imagen que se abre. No devuelve un nuevo objeto de imagen, sino que realiza modificaciones in situ en el propio objeto de imagen abierto actualmente. Si no desea cambiar el objeto de imagen original, cree una copia y luego aplique este método. Este método también evalúa la adecuada para mantener la relación de aspecto de la imagen según el tamaño pasado. desde la imagen de importación PIL Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #In-place modification   img  .  thumbnail  ((  200     200  ))   img  .  save  (  'thumb.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    creando miniatura de imagen en Python
Crear cuestionario