Uso de la biblioteca Python PIL

Descripción general de la biblioteca PIL

La biblioteca PIL es una excelente biblioteca de terceros para Python. Debe instalarse mediante pip:

pip instalar almohada 

La biblioteca PIL admite el almacenamiento, la visualización y el procesamiento de imágenes, puede procesar casi todos los formatos de imagen y puede completar operaciones como hacer zoom, recortar, superponer y agregar líneas, imágenes y texto a la imagen.

Biblioteca PIL Análisis de clase de imagen

En PIL, cualquier archivo de imagen puede usar el objeto Imagen para representar los métodos de lectura y creación de imágenes de la clase Imagen:

Image.open (nombre de archivo)     # acuerdo con la imagen de carga parámetros de los archivos 
Image.new (el modo, tamaño, color)     # acuerdo para crear una nueva imagen de un determinado parámetro 
Image.open (StringIO.StringIO (buffer))     # imágenes adquieren de una cadena 
Image.frombytes (MODO, tamaño, datos)     # crea una imagen según el píxel de datos 
Image.verify ()     # comprobación de integridad de archivos de imagen devuelve una excepción

La clase Image tiene 4 atributos comunes para procesar imágenes:

Image.Format     # formato de imagen del logotipo o de la fuente, si la imagen no se lee de un archivo, el valor Ninguno es 
Image.mode     # imagen modo de color, "L" imagen en escala de grises, "RGB" imágenes en color verdadero, "CMYK" imagen Publishing 
Imagen .size     # anchura de la imagen y la altura en píxeles (px), el valor de retorno es el de dos tupla (tupla) 
Image.palette     # propiedad paleta, un tipo de retorno ImagePalette

Existen tres métodos de conversión y guardado para las imágenes:

El Image.Save (nombre de archivo, el formato)     # Guardar la imagen como nombre de archivo de nombre de archivo, el formato es el formato de imagen 
Image.convert (MODE)      # utilizando diferentes parámetros, convertir la imagen en un nuevo modo de 
Image.thumbnail (tamaño)      # crean reducir el tamaño de imagen Miniatura, el tamaño es una tupla binaria de tamaño de miniatura

Zoom de imagen de clase de imagen y métodos de rotación:

Image.resize (tamaño) # Cambiar el tamaño de la imagen de acuerdo con el tamaño y generar una copia 
Image.rotate (ángulo) # Rotar la imagen de acuerdo con el ángulo y generar una copia

La clase de imagen puede operar en cada píxel o en cada canal de una imagen RGB por separado. El método split () puede extraer cada canal de color de la imagen RGB, y el método merge () puede sintetizar cada canal independiente en uno nuevo. Imagen:

Image.point (func)     # calcula cada elemento según la función de la función func, devuelve una copia de la imagen 
Image.split ()     # extracto de cada canal de color de la imagen RGB, una copia de la imagen de la devolución 
Image.merge (MODO, bandas Scrap)     # combinada canal , Usando el modo color, las bandas son el canal de color del nuevo color 
Image.blend (im1, im2, alpha)

Image.blend (im1, im2, alpha) interpola las dos imágenes im1 e im2 de acuerdo con la siguiente fórmula para generar una nueva imagen: im1 * (1.0-alpha) + im2 * alpha

 

Las clases ImageFilter e ImageEnhance de la biblioteca PIL proporcionan métodos para filtrar y mejorar imágenes, un total de 10 tipos:

ImageFilter.BLUR     # desenfoque imágenes 
ImageFilter.CONTOUR      # efecto contorno de la imagen 
ImageFilter.DETAIL     # detalles del efecto de la imagen 
ImageFilter.EDGE_ENHANCE     # borde de la imagen para mejorar el efecto 
ImageFilter.EDGE_ENHANCE_MORE     # frontera del efecto fortalecimiento de la imagen de umbral 
ImageFilter.EMBOSS     # imagen de alivio efecto 
ImageFilter.FIND_EDGES     # efecto contorno de la imagen 
ImageFilter.SMOOTH      # efecto de suavizado de una imagen 
ImageFilter.SMOOTH_MORE     # imagen umbral de efecto suavizante 
ImageFilter.SHARPEN      # nitidez de imagen

La clase ImageEnhance proporciona requisitos de mejora de imagen más avanzados y funciones como el ajuste de color, brillo, contraste y nitidez:

ImageEnhance.enhance (factor)     # valor de la mejora de la propiedad veces factor seleccionado 
ImageEnhance.Color (IM)     # ajustar la imagen balance de color 
ImageEnhance.Contrast (IM)     # ajustar el contraste de la imagen 
ImageEnhance.Brightness (IM)     # Ajuste del brillo 
ImageEnhance (IM) .Sharpness     # para ajustar la nitidez de imagen

 

 

Obtener miniatura

 

 

from PIL import Image 
im = Image.open ( " C: \\ bachongying.jpg " ) 
im.thumbnail (( 128,128 )) 
im.save ( ' 1bachongying.jpg ' )

 

 

Obtener el esquema de la imagen

 

desde PIL import Imagen
 desde PIL import ImageFilter 
im = Image.open ( " C: \\ bachongying.jpg " ) 
om = im.filter (ImageFilter.CONTOUR) 
om.save ( ' bachongying2.jpg ' )

  Imagen en relieve

de PIL import Imagen
 de PIL import ImageFilter 
im = Image.open ( " C: \\ bachongying.jpg " ) 
om = im.filter (ImageFilter.EMBOSS) 
om.save ( ' bachongying3.jpg ' )

 

 

Hacer una pintura de caracteres chinos

 

 

 

from PIL import Image 
ascii_char   = list ( ' 学习 使 我 快乐' )
 def get_char (r, b, g, alpha = 256 ):
     if alpha == 0:
         return  '  ' 
    gray = int (0.2126 * r + 0.7152 * g + 0.0722 * b) 
    unit = 256 / len (ascii_char)
     return ascii_char [int (gris // unit)]
 def main (): 
    im = Image.open ( ' C: \\ bachongying.jpg ' ) 
    WIDTH, HEIGHT = 100, 60 
    im =im.resize ((WIDTH, HEIGHT)) 
    txt = "" 
    para i in range (HEIGHT):
         para j in range (WIDTH): 
            txt + = get_char (* im.getpixel ((j, i))) 
        txt + = ' \ n ' 
    fo = abierto ( " pic_char.txt " , " w " ) 
    fo.write (txt) 
    fo.close () 
main ()

 

 

Supongo que te gusta

Origin www.cnblogs.com/lulingboke/p/12702692.html
Recomendado
Clasificación