PyQt类学习后的自我总结目录笔记

PyQt类学习后的自我总结目录笔记
我把类暂分为三大类:

  1. 基本类:字体,颜色,大小等;
    衍生类:----
  2. 控件类:Layouts、Spacers、Buttons、Item Views、Item Widgets、Containers、Input Widgets 、Display Widgets
  3. 特定类:PIL
    做一些特定具体的事,又分为展示类,工具类[注:自已理解说明,并不专业严谨]
  • 第一层理解:我把展示类比作一张纸,工具类比作笔,笔在纸上作画,写字,离开了纸,笔就没有了作用。工具类[ImageDraw]在展示类[Image]上执行,在展示类上显示结果。
  • 第二层理解:笔在纸上写字作画,人握笔才行;工具类在展示类上执行,工具类须实例化,也叫对象化。
    第三层理解:纸不会凭空产生,肯定要有个人生产它,对纸做些操作,同理展示类实例化,才可以被展示操作,而实例化的展示类,可以被new,open,save等等
  • 第四层理解:圆规在纸上画圆,功能单一,随便叫个人就可以画,可以不知道那个人的名字,同理工具类只做一次简单的动作,就可以匿名调用;
    笔可以上纸上画直线,写字,画画,那拥有这支笔的人最好要有名字,同理工具类可以做许多事,拥有工具类的对象也要有一个名字,就是变量名,通过变量名就可以做这个工具类可以做的事。

一、基本类

基础类:QFont、QColor、QSize……

衍生类:

QFont衍生
QFont 为绘画文本提供制定的字体
QFontComboBox 提供了选择字体族的下拉列表框
QFontDatabase 提供了可以在Window 操作系统下能够使用的字体
QFontDialog 用来选择一个指定的字体
QFontEngineInfo 用来描述一个指定的字体引擎插件
QFontEnginePlugin 累提供了字体仓库插件的基础累, 用于嵌入式linux
QFontInfo 包含了一个字体的常规信息

QColor衍生
QColorDialog

二、控件类

三、特定类

PIL

1、 展示类: 比作一张纸。

Image (new、open、save、convert、split、alpha_composite……)
#   打开图片
im = Image.open("*.jpg")
#   新建图片
newim = Image.new("RGBA",im.size,(255,255,255,0)
#  图片模式转化
regaim = im.convert("RGBA")
#  图片分层
alpha = rgbaim.split()[3]
#  图片合并
Image.alpha_composite(im,newim)
#  图片保存
newim.save("*.png")   // 注意“RGBA”模式不能存为jpg格式,不支持透明通道。
------------
array转换成image
img.flags.writeable = True # 将数组改为读写模式
Image.fromarray(np.uint8(img))

2、 工具类: 比作笔等工具

1. 绘画写字 ImageDraw (Draw……)

模块[ ImageDraw ]比作工具箱,工具类[Draw]比做工具,方法[line、rectangle……]众多表示工具可以做许多的事,所以尽量要命名调用。

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

#打开图片
image = Image.open("*.jpg")
#创建绘制对象
draw = ImageDraw.Draw(image)
#绘制直线
draw.line((20, 20, 150, 150), 'cyan')
#绘制矩形
draw.rectangle((100, 200, 300, 400), 'black', 'red')
 #绘制弧
draw.arc((100, 200, 300, 400), 0, 180, 'yellow')
draw.arc((100, 200, 300, 400), -90, 0, 'green')
#绘制弦
draw.chord((350, 50, 500, 200), 0, 120, 'khaki', 'orange')
#绘制圆饼图
draw.pieslice((350, 50, 500, 200), -150, -30, 'pink', 'crimson')
#绘制椭圆
draw.ellipse((350, 300, 500, 400), 'yellowgreen', 'wheat')
#外切矩形为正方形时椭圆即为圆
draw.ellipse((550, 50, 600, 100), 'seagreen', 'skyblue') 
#绘制多边形
draw.polygon((150, 180, 200, 180, 250, 120, 230, 90, 130, 100), 'olive', 'hotpink')
 
#绘制文本
font = ImageFont.truetype("consola.ttf", 40, encoding="unic")    #设置字体
draw.text((100, 50), u'Hello World', 'fuchsia', font)
 
image.show()
2. 图像的增强 ImageEnhance (Brightness、Color、Contrast、Sharpness)

模块[ImageEnhance]比作工具箱,工具类[Brightness]比做工具,方法[enhance]表示工具做的事。因为方法单一简单,所以可以匿名调用。

from PIL import Image
from PIL import ImageEnhance
#原始图像
image = Image.open('lena.jpg')
image.show()
 
#亮度增强
brightness = 1.5
image_brightened = ImageEnhance.Brightness(image).enhance(brightness)
image_brightened.show()
 
#色度增强
color = 1.5
image_colored = ImageEnhance.Color(image).enh_col.enhance(color)
image_colored.show()
 
#对比度增强
contrast = 1.5
image_contrasted = ImageEnhance.Contrast(image).enh_con.enhance(contrast)
image_contrasted.show()
 
#锐度增强
enh_sha = ImageEnhance.Sharpness(image)
sharpness = 3.0
image_sharped = enh_sha.enhance(sharpness)
image_sharped.show()

PIL库image模块的各方法

PIL的ImageDraw模块功能
#### PIL的ImageEnhance模块
#### PIL的ImageChops模块功能
#### 学习PIL图像处理库

3、基本类:

ImageFont
Python图像处理库PIL的ImageFont模块介绍

--------------------------------------------

上一篇:pyqt(二)


下一篇:proxy