精华内容
下载资源
问答
  • python PIL

    2017-12-05 16:25:35
    python PIL库,可处理图片之类,安装pip install ....
  • python pil

    2017-06-02 19:45:27
    安装PIL所需文件
  • python pil reference

    2019-01-07 13:01:01
    python pil 图片组件官方reference. 手工将reference里面的每一项内容复制到本地,最终输出成pdf.避免每次都去访问官网去查看SDK。 后续准备根据reference翻译成中文一份,和大家共勉。
  • 今天小编就为大家分享一篇Python PIL图片添加字体的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 使用Python模块将普通图片模拟画出点阵图。完整代码。 使用到 PIL 模块中的函数: Image.open :打开一张图片,获取 Image 对象。 Image.convert(mode='L') :将图片转为灰度图像 Image.crop :截取图片中的一块区域...
  • 使用python PIL 库将一张照片切分为9张图
  • 主要介绍了使用python PIL库实现简单验证码的去噪方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 今天我们要学习的内容是如何利用Python生成一个随机的中文验证码,并将图片保存为.jpeg格式,需要的朋友可以参考下
  • python PIL生成图片

    2020-08-27 10:52:10
    # python PIL生成图片 import os import random from PIL import Image from PIL import ImageFont from PIL import ImageDraw savePath = '/workspace/tlt-experiments/data_fire_2/' # 图片颜色 color = [random...
    # python PIL生成图片
    import os
    import random
    from PIL  import Image
    from PIL  import ImageFont
    from PIL  import ImageDraw
    
    savePath = '/workspace/tlt-experiments/data_fire_2/'
    
    # 图片颜色
    color = [random.randint(0,255),random.randint(0,255),random.randint(0,255)]
    # 生成背景图片
    image = Image.new('RGB',(1242,375),(color[0],color[1],color[2]))
    # 在图片上留白
    image.paste((255,255,255),(10,20,100,50))
    # 保存图片
    image.save(savePath + "001.png")
    
    

    生成的图片:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • python PIL使用记录

    千次阅读 2018-10-10 20:33:47
    python PIL生成相应的背景颜色 from PIL import Image, ImageDraw, ImageFont image = Image.new(mode='RGBA', size=(400, 400), color=(255, 255, 255)) draw_table = ImageDraw.Draw(im=image) image.show() # ...

    1.python PIL简介:

    参考维基百科:

    Python Imaging Library(缩写为PIL),是一个用于Python编程语言的免费库,它增加了对打开,操作和保存许多不同图像文件格式的支持。适用于Windows,Mac OS X和Linux。

    项目地址:

    指导书Handbook:

    应用能力:

    处理方法:

    • 像素操作;
    • 掩蔽和透明处理;
    • 图像过滤,例如模糊,轮廓,平滑或边缘查找
    • 图像增强,如锐化,调整亮度,对比度或颜色
    • 添加文本到图像等等。

    支持格式:

    目前,支持PPM,PNG,JPEG,GIF,TIFF和BMP。还可以创建新的文件解码器以扩展可访问的文件格式库。


    2.项目中遇到的应用场景

    python PIL改变图像的分辨率dpi

    在项目中,遇到需要更改图像dpi的情况,比如常见dpi为72,想将其修改为96,可以使用以下代码:

    from PIL import Image, ImageDraw, ImageFont
    
    def change_pixel(inp_fn, out_fn=None, pixel=None):
    	if out_fn is None:  # 设置输出的图像名称
    		fn_flds = inp_fn.split('.')
            fn_flds[-2] += '_cp'
            out_fn = '.'.join(fn_flds)
        if pixel is None:  # 默认为72
            pixel = 72
        im = Image.open(inp_fn)  # 读取输入图像
        quality_score = 95
        im.save(out_fn, dpi=(pixel, pixel), quality=quality_socre)  # 保存图像,其输出图像out_fn的dpi会变成指定的像素。
        # 其中quality是保存的质量分数,取值范围为0~100,其值越大,质量越好,建议不超过95.
        return out_fn
    
    修改完后:
    从图中可以看到,其分辨率dpi已经从72修改为96。

    python PIL resize修改图像的长宽

    在项目中,遇到长宽比例不变,按照长度,或者宽度重新修改图像的尺寸,这种情况可以通过resize函数很好的解决,但是需要计算好相关但比例及真值。
    以宽度为例子,比如一张图像的大小为300x375,想按照宽度重置为600,则可以用以下代码实现:

    from PIL import Image, ImageDraw, ImageFont
    import math
    
    def resize_width(inp_fn, basewidth, out_fn=None):
        '''
        resize the image accodring to width|basewidth
        '''
        # 设置输出名称
        if out_fn is None:
           fn_flds = inp_fn.split('.')
           fn_flds[-2] += '_rsw'
           out_fn = '.'.join(fn_flds)
        # 读入图像
        im = Image.open(inp_fn)
        w, h = im.size  # 获得图像的尺寸
        # basewidth 是想要获得的宽度,计算缩放比例
        wpercent = (basewidth/float(w))
        # 计算缩放的长度,向上取整
        hsize = math.ceil((float(h)*float(wpercent)))
        # resize操作,设定为Image.ANTIALIAS:高质量下采样滤波器,抗锯齿形
        img = im.resize((basewidth, hsize), Image.ANTIALIAS)
        # 保存图像
        img.save(out_fn, quality=95)
        return out_fn
    
    修改后:
    可以看到,其宽度变为了600, 高度变为750。同理也可以以长度为基底,按照长度的缩放比例改变宽度的尺寸。

    python PIL生成相应的背景颜色图

    生成指定颜色,大小的背景图。指定颜色是通过一组三色值组合来实现,比如白色为(255,255,255),三个值分别表示红色,绿色和蓝色
    代码如下:

    from PIL import Image, ImageDraw, ImageFont
    
    def gen_img(siez=None)
    	if size is None:
    		size = 400
    	# 生成大小为400x400RGBA是四通道图像,RGB表示R,G,B三通道,A表示Alpha的色彩空間
    	image = Image.new(mode='RGBA', size=(400, 400), color=(255, 55, 55))
    	# ImageDraw.Draw 简单平面绘图
    	draw_table = ImageDraw.Draw(im=image)
    	# 直接显示图片
    	image.show() 
    

    输出结果如下:

    代码不是很长,下面简单解释代码中用到的几个方法:
    • PIL.Image.new(mode, size, color=0):

      • 功能:通过给定的mode创建指定大小的image对象;
      • mode参数:定义了图像中关于像素的一些属性。比较常见的有:黑白图像L,真彩色RGB,带透明度的真彩色RGBA等;
      • size参数:以像素为单位指定图片的长与宽,tuple形式;
      • color参数:指定图片的背景色。当图像模式为RGBA时,若不指定该参数,默认便是透明背景;
    • PIL.ImageDraw.Draw(im, mode=None):

      • 功能:创建一个对象用于在image对象上进行作画;
      • im参数:已创建的image对象;
      • mode参数:定义了图像中关于像素的一些属性。若未给定,将与传入的image对象的mode参数保持一致;
    • PIL.ImageDraw.ImageDraw.text(xy, text, fill=None, font=None, direction=None)

      • 功能:在图片指定位置写一行文本,多行文本需要使用multiline_text方法;
      • xy参数:指定文本距左上角的位置,tuple形式;
      • text参数:文本内容;
      • fill参数:文本颜色,支持英文单词与十六进制表示法;
      • font参数:字体对象,一般通过ImageFont模块构建,用于指定字体文件位置与字体大小;
      • direction参数:文本内容方向,需要libraqm支持;

    python PIL 图像合成

    在项目中,遇到将两张图像进行叠加,分别给定叠加的具体位置,比如:
    图像1:logo背景图和图像2:模特图

    现在,将其叠加到一起,代码如下:
    from PIL import Image, ImageDraw, ImageFont
    
    def img_over(inp_fn, logo, x, y, out_fn=None):
            '''
            insert the img into logo background
            '''
            # 设置输出图像名称
            if out_fn is None:
                fn_flds = inp_fn.split('.')
                fn_flds[-2] += '_ov'
                out_fn = '.'.join(fn_flds)
            # 读入两张图像
            img = Image.open(inp_fn)
            img_logo = Image.open(logo)
            # 设置背景大小
            background = Image.new("RGB", img_logo.size, (255, 255, 255))  	  
            # convert RGBA into RGB
            background.paste(img_logo, mask=img_logo.split()[3])
            img_logo = background
            # 将输入图粘贴到背景图上,x,y指定粘贴起始位置
            img_logo.paste(img, (x, y))  # over
            # 保存
            img_logo.save(out_fn, quality=95)
            return out_fn
    

    结果如下:

    python PIL 使用遇到的问题

    在项目中,常见的一个问题是:

    OSError: cannot write mode RGBA as JPEG
    

    无法将RGBA格式的图像保存为JPEG格式的图像,因此,在进行保存之前,要进行转换之后再进行保存。
    常用的修改方法:
    1.将四通道转换为三通道

    from PIL import Image
    file_in = "test.png"
    img = Image.open(file_in)
    file_out = "test2.bmp"
    print len(img.split())  # test
    if len(img.split()) == 4:
        #prevent IOError: cannot write mode RGBA as BMP
        r, g, b, a = img.split()
        img = Image.merge("RGB", (r, g, b))
        img.save(file_out)
    else:
        img.save(file_out)
    
    1. 借用背景图将其转换为三通道图
    img = Image.open(inp_fn)
    # 设置背景大小
    background = Image.new("RGB", img.size, (255, 255, 255))  	  
    # convert RGBA into RGB
    background.paste(img, mask=img.split()[3])
    img = background
    img.save("new_jpg", quality=95)
    

    此时的img即为三通道图,这样就可以正常保存。

    展开全文
  • if __name__ == '__main__': img = Image.open('1.png') img = PIL_compress(img) with open('result.jpg', 'wb') as f: f.write(img) 参考文献 PIL.Image.Image.save Python PIL和二进制图片互转

    问题描述

    压缩二进制图像(PNG转JPG)

    1.png,69.7KB
    在这里插入图片描述




    解决方案

    Image.save() 进 BytesIO 对象再读出来即可

    from PIL import Image
    from io import BytesIO
    
    img = Image.open('1.png')
    img = img.convert('RGB')
    bytesIO = BytesIO()
    img.save(bytesIO, format='JPEG', quality=75)  # 图像质量默认为75
    img = bytesIO.getvalue()
    with open('result.jpg', 'wb') as f:
        f.write(img)
    

    result.jpg,6KB
    在这里插入图片描述




    封装

    from PIL import Image
    from io import BytesIO
    
    
    def PIL_compress(im):
        '''PIL图像压缩
    
        :param im: PIL图像,PIL.Image
        :return: bytes图像
        '''
        bytesIO = BytesIO()
        im = im.convert('RGB')
        im.save(bytesIO, format='JPEG', quality=75)  # 图像质量默认为75
        return bytesIO.getvalue()
    
    
    if __name__ == '__main__':
        img = Image.open('1.png')
        img = PIL_compress(img)
        with open('result.jpg', 'wb') as f:
            f.write(img)
    




    参考文献

    1. PIL.Image.Image.save
    2. Python PIL和二进制图片互转
    展开全文
  • python PIL

    2009-12-03 16:01:07
    python imaging may be somebody need it.
  • from PIL import Image def addTransparency(img, factor=0.7): img = img.convert('RGBA') img_blender = Image.new('RGBA', img.size, (252,45,75)) img = Image.blend(img_blender, img, factor) return ...
    # -*- coding: UTF-8 -*-
    from PIL import Image
    
    def add_transparency(img, factor=0.7):
        img = img.convert('RGBA')
        img_blender = Image.new('RGBA', img.size, (252,45,75)) # 填充rgb颜色
        img = Image.blend(img_blender, img, factor)
        return img
    
    img = Image.open("out.png")
    img = addTransparency(img, factor=0.7)
    img.save('input.png') # 图片另存为
    img.show()
    

    参考:Python PIL读取与保存图片

    展开全文
  • 主要介绍了python 实现PIL模块在图片画线写字,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 不做过多解释,请自行理解 ,其中...from PIL import Image import struct import sys import os num = 0 def CheckPixel(region): x, y = region.size empty_box = Image.new('RGBA', (int(x + 1), int(y +
  • 主要介绍了使用PythonPIL模块来进行图片对比的方法,搜索引擎最基本的图片搜索也是利用图片颜色值的对比来实现的,需要的朋友可以参考下
  • Python PIL | Image.resize() 裁剪 缩放图片

    千次阅读 2020-09-29 18:35:53
    PILPython Imaging Library,它为python解释器提供了图像编辑功能。 图像模块提供了一个具有相同名称的类,用于表示PIL图像。 该模块还提供了许多功能,包括从文件加载图像和创建新图像的功能。 Image.resize()...
  • Python PIL模块Image对象、字节流对象转二进制字节流

    千次阅读 热门讨论 2020-08-13 10:46:34
    今天有一个问题就是需要将网络字节流或者是Image对象转化为二进制字节流数据,之后借助于base64模块实现编码最终...功能: Python PIL模块Image对象、字节流对象转二进制字节流 ''' import io import os import...
  • 主要介绍了Python PIL读取的图像发生自动旋转的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python PIL获取图片像素点

    千次阅读 2020-03-01 14:27:34
    from PIL import Image # 打开要处理的图像 img_src = Image.open('sun.png') # 转换图片的模式为RGBA img_src = img_src.convert('RGBA') # 获得文字图片的每个像素点 src_strlist = img_src.load() # 100,100 ...
  • from PIL import Image, ImageEnhance img = Image.open("test.jpg") bright_enhancer = ImageEnhance.Brightness(img) # 传入调整系数1.2 bright_img = bright_enhancer.enhance(1.2) contrast_enhancer = I
  • 主要为不同颜色模式之间的转换,如RGB、HSV from PIL import Image img = Image.open('test.jpg') img_hsv = img.convert("HSV") img_rgb = img_hsv.convert("RGB")
  • 今天小编就为大家分享一篇Python 使用PIL中的resize进行缩放的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 利用Python PIL 生成图片

    千次阅读 2019-03-22 18:57:44
    /usr/bin/env python # encoding: utf-8 """ @author: morgan @time: 3/22/19 2:20 PM """ import os from PIL import Image, ImageDraw, ImageFont import cStringIO import urllib2 class DrawManage: def...
  • Python PIL 绘制圆角矩形

    千次阅读 2019-03-18 17:03:37
    from PIL import Image from PIL import ImageDraw def drawRoundRec(imgPath, color, x, y, w, h, r): im = Image.open(imgPath) drawObject = ImageDraw.Draw(im) '''Rounds''' dra...
  • python PIL 打开\显示\保存图像

    万次阅读 2019-05-12 18:55:02
    使用python进行数字图片处理,还...虽然python里面自带一个PILpython images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL发展而来的。 pip install Pillow 一、图片的打开与显示 fro...
  • python PIL 修改图片尺寸、格式、压缩

    千次阅读 2020-04-29 11:34:16
    修改宽和高 from PIL import Image img = Image.open('picture.jpg') img = img.convert('RGB') resize_img = img.resize((x, y), Image.ANTIALIAS) # x, y 为压缩后的宽和高 Image.ANTIALIAS 抗锯齿 压缩和改格式 ...
  • Python PIL反色混合

    千次阅读 2018-07-26 15:24:44
    原文:https://blog.csdn.net/jt6562/article/details/6766674/ import Image, ImageChops im1 = Image.open('c:/1.bmp') im2 = Image.open('c:/2.bmp') ... im3 = ImageChops.invert(im2) ... Image.bl...
  • python PIL.Image将两个图片合并

    千次阅读 2019-12-08 11:58:26
    from PIL import Image def blend_two_images(): img1 = Image.open( "name.jpg") img1 = img1.resize((640, 930)) img1 = img1.convert('RGBA') img2 = Image.open( "flower.jpg") img2 = i...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,903
精华内容 25,561
关键字:

pythonpil

python 订阅