cesium加载entity图片缩放_女神高圆圆,python的pygame图片多种显示

1 说明:

=====

1.1 pygame显示图片的方法,熟悉pygame的各种参数,动画设置,由浅入深,小白秒懂,值得收藏。

1.2 图片来源:今日头条正版免费图库,向女神高圆圆致敬,仅供学习。

1.3 环境:python3.8+pygame 1.9.6+微软编辑器vscode+深度操作系统deepin-linux。

42695633fd98a7d66dd4d9c588b4e130.png

gyy1.jpeg

330486922e39b7bd867ecbbd192dd172.png

gyy2.jpeg

ed2ef06e76df460777cdc0a171c70cc9.png

gyy3.jpeg

2 基本图片显示:

============

2.1 代码:

#第1步:模块导入import pygame,sys#可调用参数,比如:RESIZABLE,窗口大小可调节from pygame.locals import *  #第2步:初始化pygame.init()#窗口标题名:支持中文pygame.display.set_caption("show pic")#读取或加载图片img = pygame.image.load("/home/xgj/Desktop/pygame-pic/gyy1.jpeg") #获取位图的宽和高width,height = img.get_size()#定义屏幕和设置窗口大小,这样的宽和高的设置符合图片大小screen = pygame.display.set_mode([width,height],RESIZABLE, 32)#背景颜色填充screen.fill([255,255,255])#显示图片和指定坐标点0,0左上角开始screen.blit(img,[0,0])#更新整个待显示的 Surface 对象到屏幕上#pygame.display.flip()#更新部分内容显示到屏幕上,如果没有参数,则与flip功能相同(上一条)pygame.display.update()#当使用OpenGL的时候,不能使用update()来更新窗口,需要使用flip() 来更新#第3步:退出设置running = Truewhile running:    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = Falsepygame.quit()

2.2 图:简单,图省略。

3 图片缩小显示:

============

3.1 代码:

import pygame,sys#可调用参数,比如:RESIZABLE,窗口大小可调节from pygame.locals import * pygame.init()pygame.display.set_caption("show pic")#读取或加载图片img = pygame.image.load("/home/xgj/Desktop/pygame-pic/gyy3.jpeg")#缩小比率ratio=0.5#获取位图的宽和高width,height = img.get_size()#增加处# 获得图像的位置矩形img_rect = img.get_rect()#缩放50%比例显示sizeimg = pygame.transform.smoothscale(img,                                    (int(img_rect.width*ratio),                                    int(img_rect.height*ratio)))#定义屏幕和设置窗口大小,这样的宽和高的设置符合图片大小screen = pygame.display.set_mode([width,height],RESIZABLE, 32)#背景颜色填充,白色填充screen.fill([255,255,255])#修改bug#screen.fill([0,0,0]) #改成黑色填空即可#screen.blit(img,[0,0])screen.blit(sizeimg,[0,0])  #修改处pygame.display.update()#退出设置running = Truewhile running:    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = Falsepygame.quit()

3.2 操作效果图:

cc831402381c07193a36701a3e9ae89e.gif

3.3 附赠知识点:保真的图片大小缩放修改,代码。

# -*- coding: utf-8 -*-#不失真的图片修改:放大和缩小from PIL import Imagedef ResizeImage(filein, fileout, width, height, type):  '''  filein: 输入图片  fileout: 输出图片  width: 输出图片宽度  height:输出图片高度  type:输出图片类型(png, gif, jpeg...)  '''  img = Image.open(filein)  out = img.resize((width, height),Image.ANTIALIAS)   out.save(fileout, type)#需要修改的图片和路径filein = '/home/xgj/Desktop/pygame-pic/gyy2.jpeg'#生成图片和路径fileout = '/home/xgj/Desktop/pygame-pic/gyy22.png'#需要修改的宽和高width = 200height = 120type1 = 'png'if __name__ == "__main__":  ResizeImage(filein, fileout, width, height, type1)

===高级一点===

4 自动从下往上移动图片:

===================

4.1 代码:

#第1:导入模块import pygameimport sys#第2步:初始化定义pygame.init()#创建游戏窗口 大小为2000 * 1200#绘制背景图像screen = pygame.display.set_mode((2000,1200))#第3步:加载图片#加载图像数据,背景图片大小最好2000,1200,用上面代码保真进行图片大小修改#注意不加背景图片会出现上升图片下的拉伸变形和图片的一张一张叠加上升#注意python3已经不需要rbg = pygame.image.load(r'/home/xgj/Desktop/pygame-pic/sky1.png')#通过blit来绘制图像,从游戏窗口screen的(0,0)处开始绘制screen.blit(bg, (0,0))#加载图片img = pygame.image.load(r'/home/xgj/Desktop/pygame-pic/gyy2.jpeg')width,height = img.get_size()#定义rect记录移动的图片的初始位置#图片的下面坐标位置300,0img_rect = pygame.Rect(300, 0, width, height)#第4步:刷新和时钟#在绘制完所有图像后,再统一调用update方法pygame.display.update()#创建时钟对象clock = pygame.time.Clock()#第5步:循环while True:    # 遍历所有的事件    for event in pygame.event.get():        # 如果单击关闭窗口,则退出        if event.type == pygame.QUIT:            sys.exit()    #时钟    clock.tick(60)    #修改移动图片的位置    img_rect.y -= 1    #判断移动图片位置    if img_rect.y <= 0:        img_rect.y = 1200 #窗口的高    #调用blit方法绘制图像    screen.blit(bg, (0,0))#在每次绘制移动图片之前,再将背景绘制一下    screen.blit(img, img_rect)    #调用update方法更新显示    pygame.display.update()pygame.quit()

4.2 背景图自己下载,来自今日头条免费正版图库,修改大小可用到上面保真图片修改代码。

4.3 效果图:由于gif太大,不能上传,故截屏。

2da72fcc72af07bb9593a941daa71b19.png

5 按方向键调整图片移动方向:

======================

5.1 代码:

#第1步:导入模块import pygame,sys#第2步:加载图片和初始化#读取图片img=pygame.image.load('/home/xgj/Desktop/pygame-pic/gyy1.jpeg')#获取图片的宽和高picwidth,picheight = img.get_size()#初始化pygame.init()#窗口标题screen=pygame.display.set_caption('按键盘方向键移动图片')#窗口大小winwidth=2000winheight=1200screen=pygame.display.set_mode([winwidth,winheight])#默认字体和大小设置my_font=pygame.font.SysFont(None,22)#屏幕白色255,255,255screen.fill([0,0,0])  #背景颜色设置黑色#第3步:定义相关函数#定义函数:加载图片def loadimg(xloc,yloc):    locationxy=[xloc,yloc]    screen.blit(img,locationxy)    pygame.display.flip()#定义函数:加载文字def loadtext(xloc,yloc):    textstr='location:'+str(xloc)+','+str(yloc)    text_screen=my_font.render(textstr, True, (255, 0, 0))    #50和50是坐标,位于左上角    screen.blit(text_screen, (50,50))#第4步:定义主函数def main():    #文字加载位置    loadtext(310,0)        #上下移动参数    looper=1200    #水平移动参数    shuip=2000    #循环    while True:        #退出设置        for event in pygame.event.get():            if event.type==pygame.QUIT:                sys.exit()            #功能键定义            elif event.type == pygame.KEYDOWN:                #按键↑功能定义                if event.key==pygame.K_UP:                    looper=looper-50                    #pic的高                    if looperwinheight:                       looper=-picheight                #按键←功能定义                if event.key == pygame.K_LEFT:                   shuip=shuip-50                   #pic的宽                   if shuipwinwidth:                       shuip=0                #再次屏幕填充黑色                screen.fill([0,0,0])                                    loadtext(shuip,looper)                loadimg(shuip,looper)#第5步:if __name__=='__main__':    main()

5.2 效果图:

381668fb0bc35e30841089d75c5d7bb5.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值