base64

无需安装,导入就可以使用

有何用途:

答,比如想把一张图片嵌入到代码中时,因为图片是二进制数据,代码是文本文件,这时候就需要把二进制数据编码成文本,就需要用到base64,编码后3字节变成4字节

import io, base64
import pygame
from pygame.locals import *
# input = open('ball.png', 'rb')
# output = open('aaa.txt', 'wb')
# base64.encode(input, output)
# baseStr = base64.b64encode(open('ball.png', 'rb').read())  # 编码后的进制制
# byte = base64.b64decode(baseStr)
# print(byte)  # 原始二进制
# input.close()
# output.close()
#
# aaa.txt里面就是图片的base64编码



class Ball(pygame.sprite.Sprite):
    def __init__(self, color, initial_position):
        pygame.sprite.Sprite.__init__(self)
        bt = base64.b64decode(
            """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
7c+tHq93/hdfN8bS4WaZagAAAABJRU5ErkJggg==""")

        ball_file = io.BytesIO(bt)


        self.image = pygame.image.load(ball_file).convert_alpha()
        self.rect = self.image.fill(color, None, BLEND_ADD)
        self.rect.topleft = initial_position


pygame.init()
screen = pygame.display.set_mode([350, 350])

ball = Ball((255, 0, 0), (100, 100))
screen.blit(ball.image, ball.rect)
pygame.display.update()
while pygame.event.poll().type != KEYDOWN:
    pygame.time.delay(10)

 

posted @ 2020-11-30 16:01  老谭爱blog  阅读(1177)  评论(0)    收藏  举报