Python_用Pillow操作图像

1、颜色和RGBA值
  • RGBA值是一组数字如(128, 0, 128, 255),指定颜色中的红、绿、蓝和alpha(透明度)的值。值的范围是0~255。这些值是从0到255的整数。
  • 这些RGBA值分配给单个像素,像素是计算机屏幕上能显示一种颜色的最小点;
  • 像素的RGB设置准确的告诉他应该显示哪种颜色
名称RGBA值
White(255,255,255,255)
Green(0,255,0,255)
Red(255,0,0,255)
Blue(0,0,255,255)
Yellow(255,255,0,255)
Purple(128,0,128,255)
Black(0,0,0,255)
Gray(128,128,128,255)
(1) ImageColor.getcolor获取某种颜色的RGBA值
from PIL import ImageColor
print(ImageColor.getcolor('red', 'RGBA'))
# (255, 0, 0, 255)
2、坐标和Box元组
  • 原点是位于图像左上角的像素,用符号(0,0)表示,第一个0表示x坐标,它以原点处为0,从左至右增加。第二个0表示y坐标,它以原点处为0,从上至下增加;
  • Pillow函数和方法需要一个矩形元组参数,这意味四个整坐标的元组,表示图像中的一个矩形区域,四个整数顺序是:最左侧x坐标,最顶侧y坐标,最右侧x坐标,最底侧y坐标;如(3,1,9, 6)
3、用Pillow操作图像
(1).open加载图像、.size获取宽高、.filename名称、.save保存图片等
from PIL import Image
img = Image.open("cat.png")
width, height = img.size  # 图片的宽度和高度
name = img.filename  # 图片的名称
form = img.format  # 图片的格式PNG、JPG等
img.save("new_cat.jpg")  # 另存为新的图片
(2).new创建一个100像素宽、200像素高,带有紫色背景的图片
from PIL import Image
im = Image.new('RGBA', (100, 200), "purple")
im.save("purpleImage.png")
(3)getpixel()方法读取图片某一点的RGB值,putpixel()更改单个像素
from PIL import Image
from PIL import ImageColor
img = Image.open("purpleImage.png")
x, y = 12, 66
r, g, b, alpha = img.getpixel((x, y))
img.putpixel((x, y), (210, 210, 210))  # 第一种
img.putpixel((x, y), ImageColor.getcolor("Red", "RGBA"))  # 第二种
img.save("putpixel.png")
(4)crop()裁剪一个矩形区域的图像,并删除矩形之外的一切
from PIL import Image
im = Image.open("purpleImage.png")
crop = im.crop((25, 30, 45, 50))
crop.save("new.png")
(5)copy()方法复制图片
from PIL import Image
im = Image.open("purpleImage.png")
imcopy = im.copy()
imcopy.save("imcopy.png")
(6)paste()将一个图像粘贴到另一个图像上
from PIL import Image
im = Image.open("purpleImage.png")
crop = Image.new('RGBA', (23, 23), "green")
w, h = im.size
c_w, c_h = crop.size
im2 = im.copy()
for left in range(0, w, c_w):
    for top in range(0, h, c_h):
        print(left, top)
        im2.paste(crop, (left, top))
im2.save("paste.png")
(7)resize()方法调整图像大小
from PIL import Image
im = Image.open("purpleImage.png")
resize_img = im.resize(5, 8)
resize_img.save("resize_img.png")
(8)rotate()旋转和翻转图像,transpose()镜像翻转
from PIL import Image
im = Image.open("purpleImage.png")
im.rotate(30, expand=True).save("rotate.png")
im.transpose(Image.FLIP_LEFT_RIGHT).save("right.png")
im.transpose(Image.FLIP_TOP_BOTTOM).save("Top.png")
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值