"""
图像处理之RGBA通道提取。
python精灵模块能进行图像处理吗?
这个...,也算是可以吧,不过核心是numpy,这里只是用它的角色显示图形罢了。
在sprites模块中,在新建屏幕的时候可以加布局参数。
参数的名称叫layout,如果用Screen新建屏幕不写参数或值为1,那么一切还是海龟画图那样的布局。
如果加了参数值为2,那么会形成左右布局,这个时候会有窗口会一分为二。
左边的框架叫leftframe,右边的框架叫rightframe。它们的父(master)组件都是root。
而角色所在的displayframe就在leftframe框架的上面。有一个叫bottomframe的框架
在leftframe框架的下面。读者可在rightframe和bottomframe这两个框架中放置组件。
这里需要tkinter知识,在turtle模块中它的缩写为TK。
这个程序也可以通过im.convert('L')把图像变成灰度图。
还可以通im = 255-im反转二维阵列用来生成负片效果。
当然,对im进行各种转换,就能进行各种图像处理了。
"""
from sprites import *
def extractred():
"""提取红色通道"""
imcopy = im.copy()
pass
def extractgreen():
"""提取绿色通道"""
imcopy = im.copy()
pass
def extractblue():
"""提取蓝色通道"""
imcopy = im.copy()
pass
def extractalpha():
"""提取透明通道"""
imcopy = im.copy()
pass
screen = Screen(2) # 新建左右分区的屏幕对象
screen.setup(800,600)
screen.title('图像处理之RGBA通道提取')
root = screen._root
root.rightframe.config(padx=10,pady=10)
pic = 'maid.png'
im = np.array(Image.open(pic)) # im是一个二维阵列,每个数据是一个4元组像素点
girl = Sprite('maid.png',pos=(-300,0)) # 这是原图形
girl_red = Sprite(visible=False,pos=(-150,0)) # 准备用来显示只有红色通道的图形
girl_green = Sprite(visible=False,pos=(0,0)) # 准备用来显示只有绿色通道的图形
girl_blue= Sprite(visible=False,pos=(150,0)) # 准备用来显示只有蓝色通道的图形
girl_alpha= Sprite(visible=False,pos=(300,0)) # 准备用来显示只有alpha通道的图形
b1 = TK.Button(root.rightframe,text='红色通道',font=('黑体',12,'normal'),command=extractred)
b1.pack()
b2 = TK.Button(root.rightframe,text='绿色通道',font=('黑体',12,'normal'),command=extractgreen)
b2.pack()
b3 = TK.Button(root.rightframe,text='蓝色通道',font=('黑体',12,'normal'),command=extractblue)
b3.pack()
b4 = TK.Button(root.rightframe,text='透明通道',font=('黑体',12,'normal'),command=extractalpha)
b4.pack()
screen.mainloop()
需要全部源代码和素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

