zoukankan      html  css  js  c++  java
  • Python之图像处理

    ------------恢复内容开始------------

    getrgb()

    from PIL import ImageColor
    
    #getrgb 将颜色符号或字符串转化为元组
    
    print(ImageColor.getrgb('#0000ff'))    # (0,0,255)
    print(ImageColor.getrgb('Blue')        # (0,0,255)
     

     getcolor()

    from PIL import ImageColor
    #getcolor 将颜色符号或字符串转化为元组
    print(ImageColor.getcolor('#0000ff', 'RGB'))  # (0,0,255)
    print(ImageColor.getcolor('#0000ff', 'RGBA'))  # (0,0,255,255)

    Image模块的方法:open(),save(),resize(),rotate(),transpose(),getpixel(),putpixel(),crop(),copy(),paste()

    Image模块的属性:size,filename,format,

    from PIL import Image
    # 打开一个图像对象
    pic = Image.open('picture/图1.jpg')
    # size属性获得图像宽和高
    w, h = pic.size
    # filename属性获得图像对象的文件名
    print(pic.filename)  # picture/图1.jpg
    # format属性获得图像对象的文件格式
    print(pic.format)  # JPEG
    # save()方法存储文件,可以存储为不同格式的文件,如JPG-->PNG
    pic.save('img001.png')
    
    
    # new(mode, size, color)建立新的文件对象
    img = Image.new('RGB', (200, 250), 'green')
    # resize()更改图像大小
    img1 = img.resize((300, 300))
    # rotate()方法可以逆时针旋转图像,expand=True可以使图像旋转后全部显示
    pic.rotate(90).save('img01.png')
    pic.rotate(90, expand=True).save('img02.png')
    # transpose()方法可以使图像翻转,transpose(Image.FLIP_LEFT_RIGHT)是图像左右翻转,transpose(Image.FLIP_TOP_BOTTLE)使图像上下翻转
    pic.transpose(Image.FLIP_LEFT_RIGHT).save('img03.png')
    pic.transpose(Image.FLIP_TOP_BOTTOM).save('img04.png')
    # getpixel()方法可以得到图像某一位置像素的色彩
    print(pic.getpixel((100, 100)))  # (203, 203, 203)
    # putpixel()方法可以在某一位置置入色彩
    for x in range(100):
        for y in range(100):
            img.putpixel((x, y), ImageColor.getrgb('yellow'))
    img.save('img002.png')
    # crop()方法可以裁切图像
    pic1 = pic.crop((0,0,100,100))
    pic1.save('img05.png')
    # copy()方法可以复制图像
    pic2 = pic.copy()
    pic2.save('img06.png')
    # paste()方法可以合成图像
    img.paste(pic1, (0, 100))
    img.save('img003.png')

    ImageDraw模块的方法:Draw(),point(),line(),ellipse(),rectangle(),polygon(),text()

    # ImageDraw模块可以在图像内绘制图案
    from PIL import ImageDraw
    # 绘制图案首先在建立图像
    newimg = Image.new('RGB',(300,300),'yellow')
    # 然后在图像内建立图案对象
    dw = ImageDraw.Draw(newimg)
    # point()方法可以在图像内绘制点
    for x in range(100):
        for y in range(100,250):
            dw.point([(x,y)],fill='black')
    # line()方法可以在图像内绘制线条
    dw.line([(0,0),(100,100),(150,100)],fill='black')
    # ellipse((left,top,right,bottle))方法可以在图像内绘制椭圆,坐标是包住椭圆的左上角与右下角
    dw.ellipse((200,200,300,300),fill='red')
    # rectangle()方法可以在图像内绘制矩形,坐标是矩形的左上角与右下角
    dw.rectangle((0,100,300,200),fill='red')
    # polygon()方法可以在图像内绘制多边形
    dw.polygon([(0,200),(300,200),(300,250),(0,200)],outline='black')
    # text((x,x),内容,fill,font)方法可以在图像内填写英文或中文
    dw.text((0, 200), 'welcome to ...', fill='blue')
    newimg.save('img07.png')

    ------------恢复内容结束------------

  • 相关阅读:
    druid 配置监控界面和开启spring支持
    关于ComboGrid取值为非下拉框数据是,隐藏面板数据清空
    Error:Execution failed for task ‘:app:processDebugManifest’.
    The newly created daemon process has a different context than expected
    在CentOs6.5下安装Python2.7.6和Scrapy
    【转】Ehcache详细解读
    项目代码的缺陷
    hibernateTemplate
    java.text.SimpleDateFormate错误
    关于集合的空指针问题
  • 原文地址:https://www.cnblogs.com/mango1997/p/13716713.html
Copyright © 2011-2022 走看看