1说明: 1。1学习python保真修改图片大小。 1。2学习python的PIL设置png图片的背景设置为透明色。 1。3学习pygame的图片围点旋转。 1。4环境:python3。8pygame1。9。6微软编辑器vscode深度操作系统deepinlinux。 1。5图片:来源今日头条正版免费图库。 林黛玉:若有所思,静心思考 2效果: 3代码: 3。1picsize。py代码:先把下载下来的图片进行大小设置,太大不好。coding:utf8不失真的图片修改:放大和缩小第1步:导入模块fromPILimportImage第2步:定义函数defResizeImage(filein,fileout,width,height,type):imgImage。open(filein)outimg。resize((width,height),Image。ANTIALIAS)out。save(fileout,type)第3步:图片路径和参数需要修改的图片和路径fileinhomexgjDesktoppygamepngteacher。jpeg生成图片和路径fileouthomexgjDesktoppygamepngteacher1。jpeg需要修改的宽和高width300height300typepicpng第4步:main调用函数ifnamemain:ResizeImage(filein,fileout,width,height,typepic) 3。2pngbg。py代码:设置png图片的背景颜色为透明的。第1步:代码来源https:blog。csdn。netweixin42165585articledetails102868894?utmmediumdistribute。pcrelevant。nonetaskblogBlogCommendFromMachineLearnPai21。addparamisCfdepth1utmsourcedistribute。pcrelevant。nonetaskblogBlogCommendFromMachineLearnPai21。addparamisCf第2步:模块导入importosfromPILimportImage第3步:类定义:背景颜色转换classTranscolor():初始化definit(self):self。colormap{white:(255,255,255,0),black:(0,0,0,0),}步骤或者进程defprocess(self,imagefile,oldbk,newbk,textcolor):imgImage。open(imagefile)。convert(RGBA)datasimg。getdata()newData〔〕foritemindatas:ifself。isaround(item,oldbk):newData。append(newbk)else:newData。append(textcoloriftextcolorelseitem)img。putdata(newData)returnimg背景颜色透明化:注意只能对背景颜色为白色的进行类似抠图一样的设置deftransparent(self,imagefile,bkcolorwhite,textcolorNone):透明化bkself。formulate(bkcolor)textcolorself。formulate(textcolor)iftextcolorelseNonereturnself。process(imagefile,bk,(0,0,0,0),textcolor)defisaround(self,color1,color2):foriinrange(3):ifabs(color1〔i〕color2〔i〕)30:returnFalsereturnTruedefformulate(self,var):格式检查ifvarinself。colormap。keys():returnself。colormap〔var〕forn,iinenumerate(var):ifi0ori255orn4:print(Error:请输入whiteblackphotew(220,220,220,0)RGBA形式)exit(1)returnvar第4步:main调用类函数ifnamemain:tTranscolor()路径文件夹photodirhomexgjDesktoppygamepngpicforiinos。listdir(photodir):ifos。path。splitext(i)〔1〕。lower()in〔。jgp,。png,。jpeg,。bmp〕:pathos。path。join(photodir,i)注意生成的文件:比如xxx。jpg。png,建议重新定义:xxxnew。pngt。transparent(path)。save(path。png) 3。3pygame的图片围点旋转的代码:https:www。cnblogs。comyjmyzzppygametutorial9imagerotate。html第1步:模块导入importpygameimportsysfrompygame。localsimport第2步:颜色定义BLACK0,0,0RED255,0,0GREEN0,255,0第3步:窗口初始化pygame。init()窗口大小SIZEWIDTH,HEIGHT1800,1000定义屏幕和窗口可调节screenpygame。display。setmode(SIZE,RESIZABLE,32)第4步:加载图片pngleafpygame。image。load(homexgjDesktoppygamepngleaf。png)leafRectleaf。getrect()leafRectleafRect。move(int(WIDTH2),int(HEIGHT2))初始化定义角度angle1游戏时钟定义clockpygame。time。Clock()第5步:循环定义whileTrue:退出设置foreventinpygame。event。get():ifevent。typepygame。QUIT:sys。exit()旋转图片(注意:这里是一个新变量,存储旋转后的图片)newLeafpygame。transform。rotate(leaf,angle)校正旋转图片的中心点newRectnewLeaf。getrect(centerleafRect。center)angle1screen。fill(BLACK)这里要用newRect区域,绘制图象screen。blit(newLeaf,newRect)pygame。draw。rect(screen,RED,leafRect,1)pygame。draw。rect(screen,GREEN,newRect,1)pygame。display。update()clock。tick(100) 4图片:如下: 5小结: 5。1png图片是pygame游戏设置的主要图片格式,建议设置背景颜色透明。 5。2PNG:便携式网络图形(外语全称:PortableNetworkGraphics),是网上接受的最新图像文件格式。 5。3与jpg区别: png即可移植网络图形格式,也是一种位图文件存储格式,可以进行无损压缩。 而jpg是我们最常见的图片格式了,图片占用存储较少,但是也牺牲了图片质量。