html图片旋转_非林黛玉般安静:图片png格式的pygame围点旋转展示

1 说明:

=====

1.1 学习python保真修改图片大小。

1.2 学习python的PIL设置png图片的背景设置为透明色。

1.3 学习pygame的图片围点旋转。

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

1.5 图片:来源今日头条正版免费图库。

057345009529adbb248802e42234a9bc.png

林黛玉:若有所思,静心思考

2 效果:

=====

8f26cabc37dac11ecae72d3b94a1356a.gif
65e4c1acdec6f71bd2f3a2f2960d20d0.gif

3 代码:

=====

3.1 pic-size.py代码:先把下载下来的图片进行大小设置,太大不好。

# -*- coding: utf-8 -*-#不失真的图片修改:放大和缩小#第1步:导入模块from PIL import Image#第2步:定义函数def ResizeImage(filein, fileout, width, height, type):    img = Image.open(filein)  out = img.resize((width, height),Image.ANTIALIAS)   out.save(fileout, type)#第3步:图片路径和参数#需要修改的图片和路径filein = '/home/xgj/Desktop/pygame-png/teacher.jpeg'#生成图片和路径fileout = '/home/xgj/Desktop/pygame-png/teacher1.jpeg'#需要修改的宽和高width = 300height = 300typepic = 'png'#第4步:main调用函数if __name__ == "__main__":  ResizeImage(filein, fileout, width, height, typepic)

3.2 png-bg.py代码:设置png图片的背景颜色为透明的。

#第1步:代码来源#https://blog.csdn.net/weixin_42165585/article/details/102868894?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf#第2步:模块导入import osfrom PIL import Image #第3步:类定义:背景颜色转换class Transcolor():    #初始化    def __init__(self):        self.color_map = {            'white': (255, 255, 255, 0),            'black': (0, 0, 0, 0),        }        #步骤或者进程    def process(self, image_file, old_bk, new_bk, text_color):        img = Image.open(image_file).convert("RGBA")        datas = img.getdata()        newData = []        for item in datas:            if self.is_around(item, old_bk):                newData.append(new_bk)            else:                newData.append(text_color if text_color else item)        img.putdata(newData)        return img        #背景颜色透明化:注意只能对背景颜色为白色的进行类似抠图一样的设置    def transparent(self, image_file, bk_color='white', text_color=None):        #透明化        bk = self.formulate(bk_color)        text_color = self.formulate(text_color) if text_color else None        return self.process(image_file, bk, (0, 0, 0, 0), text_color)        def is_around(self, color1, color2):        for i in range(3):            if abs(color1[i] - color2[i]) > 30:                return False        return True        def formulate(self, var):  #格式检查        if var in self.color_map.keys():            return self.color_map[var]        for n, i in enumerate(var):            if i < 0 or i > 255 or n >= 4:                print('Error:请输入white|black|phote_w|(220,220,220,0)RGBA形式')                exit(1)        return var #第4步:main调用类函数if __name__ == "__main__":    t = Transcolor()    #路径文件夹    photo_dir = '/home/xgj/Desktop/pygame-png/pic'    for i in os.listdir(photo_dir):        if os.path.splitext(i)[1].lower() in ['.jgp', '.png', '.jpeg', '.bmp']:            path = os.path.join(photo_dir, i)            #注意生成的文件:比如xxx.jpg.png,建议重新定义:xxxnew.png            t.transparent(path).save(path + '.png')

3.3 pygame的图片围点旋转的代码:

#https://www.cnblogs.com/yjmyzz/p/pygame-tutorial-9-image-rotate.html#第1步:模块导入import pygameimport sysfrom pygame.locals import *  #第2步:颜色定义BLACK= 0, 0, 0RED=255,0,0GREEN=0,255,0#第3步:窗口初始化pygame.init()#窗口大小SIZE = WIDTH, HEIGHT = 1800, 1000#定义屏幕和窗口可调节screen = pygame.display.set_mode(SIZE,RESIZABLE, 32)#第4步:加载图片pngleaf = pygame.image.load("/home/xgj/Desktop/pygame-png/leaf.png")leafRect = leaf.get_rect()leafRect = leafRect.move(int(WIDTH/ 2), int(HEIGHT / 2))#初始化定义角度angle = 1#游戏时钟定义clock = pygame.time.Clock()#第5步:循环定义while True:    #退出设置    for event in pygame.event.get():        if event.type == pygame.QUIT:            sys.exit()    # 旋转图片(注意:这里是一个新变量,存储旋转后的图片)    newLeaf = pygame.transform.rotate(leaf, angle)    # 校正旋转图片的中心点    newRect = newLeaf.get_rect(center=leafRect.center)    angle += 1    screen.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 图片:如下:

b41f0b39d38e5ed747dc45c7137f22f4.png

5 小结:

======

5.1 png图片是pygame游戏设置的主要图片格式,建议设置背景颜色透明。

5.2 PNG:便携式网络图形(外语全称:Portable Network Graphics),是网上接受的最新图像文件格式。

5.3 与jpg区别:

png即可移植网络图形格式,也是一种位图文件存储格式,可以进行无损压缩。

而jpg是我们最常见的图片格式了,图片占用存储较少,但是也牺牲了图片质量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值