热爱足球 发表于 前天 20:08

常识Python GDI 绘图教程:像素、线条、矩形与文字绘制

像素点绘制
以下代码运行后将会在屏幕500,100的位置绘制一个像素点

importwin32gui
importwin32api

#获取屏幕的设备上下文
hdc=win32guiGetDC(0)
x,y=500,100#点的坐标
color=win32apiRGB(255,0,0)#红色
win32guiSetPixel(hdc,x,y,color)#绘制像素点
上面的程序执行后也许不明显,因此我们改进一下,多铺点像素点便可清晰的看见,代码和效果如下

importwin32gui
importwin32api

#获取屏幕的设备上下文
hdc=win32guiGetDC(0)
color=win32apiRGB(255,0,0)#红色
whileTrue:
forxinrange(500,800):
foryinrange(500,800):
win32guiSetPixel(hdc,x,y,color)#绘制像素点
可以看到,以上代码执行后,将会在屏幕的500,500的位置开始绘制一个300*300的正方形



线条绘制
对于要绘制线条,若用像素点来绘制的话,效率非常的低,因此再来看下线条的绘制方式,代码和效果如下:

importwin32gui
importwin32con
importwin32api


hdc=win32guiGetDC(0)
color=win32apiRGB(255,0,0)#红色
pen=win32guiCreatePen(win32conPS_SOLID,3,color)#线条宽度为3
win32guiSelectObject(hdc,pen)#为设备上下文设置画笔

whileTrue:
win32guiMoveToEx(hdc,500,500)#绘制起点
win32guiLineTo(hdc,800,800)#绘制终点


绘制心矩形
绘制心矩形就比较好理解了,代码和效果如下:

importwin32gui
importwin32api


hdc=win32guiGetDC(0)
color=win32apiRGB(0,255,0)#绿色
brush=win32guiCreateSolidBrush(color)#创建心画刷
win32guiSelectObject(hdc,brush)

whileTrue:
win32guiFillRect(hdc,(600,600,500,500),brush)
关键代码为FillRect()函数,注意函数中坐标需要为一个元组对象,元组中首、二个表示一个点的坐标,第、四表示一个点的坐标,然后这两个点各自固定一个坐标便构成一个心矩形



绘制空心矩形
关于空心矩形的绘制,其有多种方式,可以是像素点构成的,也可以是线条构成的,也可以直接绘制空心矩形,先来看下线条构成的空心矩形如何现,代码和效果如下:

importwin32gui
importwin32con
importwin32api

#获取屏幕的设备上下文
hdc=win32guiGetDC(0)

#设置矩形边框的颜色和宽度
border_color=win32apiRGB(255,0,0)#红色
pen=win32guiCreatePen(win32conPS_SOLID,3,border_color)#线条宽度为3
win32guiSelectObject(hdc,pen)

#矩形的坐标
left,top,right,bottom=400,400,600,600#左、上、右、下坐标

whileTrue:
#绘制空心矩形
win32guiMoveToEx(hdc,left,top)#移动到起点
win32guiLineTo(hdc,right,top)#高边
win32guiLineTo(hdc,right,bottom)#右边
win32guiLineTo(hdc,left,bottom)#底边
win32guiLineTo(hdc,left,top)#左边


然后是直接绘制空心矩形的代码现,如下:

importwin32api
importwin32gui

dc=win32guiGetDC(0)
brush=win32guiCreateSolidBrush(win32apiRGB(255,138,0))

whileTrue:
win32guiFrameRect(dc,(400,400,600,600),brush)


绘制文字
基本的绘制文字如下,这将在500,500到600,600的区域绘制设置的文字:

importwin32con
importwin32gui

DC=win32guiGetDC(0)

win32guiDrawText(DC,"幽络源分享",-1,(500,500,600,600),win32conDT_BOTTOM)


如果要设置文字样式呢如下,我这里设置了字体高度和粗细,当然不止这些,这里演示一部分:

importwin32gui
importwin32con
importwin32api

#获取屏幕的设备上下文
DC=win32guiGetDC(0)

#创建字体结构
logfont=win32guiLOGFONT()
logfontlfHeight=48#字体高度
logfontlfWeight=win32conFW_HEAVY#字体粗细

#创建字体
font=win32guiCreateFontIndirect(logfont)

#选择字体到设备上下文
win32guiSelectObject(DC,font)

#绘制文本
win32guiSetTextColor(DC,win32apiRGB(0,0,255))#设置文本颜色
win32guiSetBkColor(DC,win32apiRGB(255,255,255))#设置背景色
win32guiDrawText(DC,"幽络源分享",-1,(500,500,800,600),win32conDT_BOTTOM)


总结
以上便是使用Python进行GDI绘制到屏幕的基础教程,当然,更多的功能还需自行探究pywin32库。



现在,大家对源码网都比较关注,希望能从中获得更多的收益。提供经过严格测试的免费源码、各种线上兼职和网络兼职的网创教程、编程及网络相关的技术教程分享,助您轻松获取资源和技术支持。https://www.youluoyuan.com/https://www.youluoyuan.com/wp-content/uploads/2024/10/ylyapp.png
页: [1]
查看完整版本: 常识Python GDI 绘图教程:像素、线条、矩形与文字绘制