python图像处理——图片区域颜色替换小工具

python图像处理——图片区域颜色替换小工具

使用场景

图片区域颜色替换小工具使用python开发,可用于选取图片相同颜色的区域,可设定选择精度,可自由选择颜色,将区域的颜色进行替换。可使用橡皮擦工具,包括圆形和矩形橡皮擦,可选择颜色对图片进行擦除操作。便于修饰图片。

工具使用说明

1.打开工具
在这里插入图片描述
2.点击选择文件选择要处理的图片
在这里插入图片描述
3.设定要替换的颜色,默认为黑色
在这里插入图片描述
弹出颜色选择框,点击需要的颜色
4.设定颜色处理的精度,默认为10
在这里插入图片描述
5.点击选择区域,在图片上选取区域内的点进行区域选择,可多次选择
在这里插入图片描述
6.若精度不合适,选取的区域不理想,可点击取消,重新选择,点击开始替换,则替换成功
在这里插入图片描述
7.可使用橡皮擦工具,设定橡皮擦的颜色,默认为白色,设定橡皮擦的大小和形状,可选择矩形和圆形
在这里插入图片描述
8.点击选择擦除,可用鼠标左键选择要擦除的地方
在这里插入图片描述
9.点击鼠标右键,可执行擦除,或直接点击右键擦除
在这里插入图片描述
10.点击完成,擦除成功
11.点击保存文件,可保存图片

重点代码

1.获取图片上某一点的颜色

pil_im = Image.open(showFile)  # 三维数组 打开文件
getcolor = pil_im.getpixel((x, y))

2.设置图片上某一点的颜色

pil_im.putpixel((x, y), (255, 0, 0))  # 图片颜色替换, RGB颜色

3.颜色十六进制转换为RGB

# 16进制颜色格式颜色转换为RGB格式,白色#FFFFFF
def Hex_to_RGB(hex):
    r = int(hex[1:3], 16)
    g = int(hex[3:5], 16)
    b = int(hex[5:7], 16)
    rgb = (r, g, b)
    return rgb  # 转换为(255, 255, 255)
  1. 颜色RGB转换为十六进制
# RGB颜色转换为十六进制格式,白色(255, 255, 255)
def RGB_to_Hex(rgb):
    color = '#'
    for i in rgb:
        color += str(hex(i))[-2:].replace('x', '0').upper()
    return color

5.颜色选择器
RGB颜色选择器可以使用

import tkinter.colorchooser as cc  # 颜色选择器
rgb, hx = cc.askcolor()  # 颜色选择器

单tk中画布颜色、前景色和背景色等只能使用十六进制颜色,且不是所有颜色,工具中附所有可选择的十六进制颜色
6. 画直线、矩形、圆形

# 画直线,两点坐标,x1, y1, x2, y2
canvas1.create_line(lines[0][0], lines[0][1], lines[-1][0], lines[-1][1], fill="red")
# 画矩形,左上角和右下角坐标,可定义填充颜色和边框颜色
canvas1.create_rectangle(rec[0], rec[1], rec[2], rec[3], fill="black", outline="red")
# 画圆形,左上角和右下角坐标,可定义填充颜色和边框颜色
canvas1.create_oval(rec[0], rec[1], rec[2], rec[3], fill="black", outline="red")
  1. 下拉框
shapelist = ttk.Combobox(frame1, width=8)  # 下拉框,选择形状
shapelist["values"] = ("矩形", "圆形")
shapelist.current(0)  # 默认选择第一个
shapelist.grid(row=2, column=3, padx=5)
……
str1 =shapelist.get()  # 获取下拉框选项

工具下载地址

工具+十六进制颜色文档
https://download.csdn.net/download/weixin_39151703/12137885

发布了9 篇原创文章 · 获赞 2 · 访问量 654

猜你喜欢

转载自blog.csdn.net/weixin_39151703/article/details/104189484