用户:
宇宙中的星系查看:19 回复:13 评论:19 创建时间:2024-08-14T13:37:58

如图,为什么报错中显示该图片打不开?
宇宙中的星系import pygame
import random
pygame.init()
screen = pygame.display.set_mode([800,600])
black = (0,0,0)
pic = pygame.image.load("CrazySmile.bmp")
keep_going = True
colorkey = pic.get_at((0,0))
pic.set_colorkey(colorkey)
mousebutton = False
clock = pygame.time.Clock()
spirte_list = pygame.sprite.Group()
#定义一个类喵iley
class 喵iley(pygame.sprite.Sprite):
pos = (0,0) #设置笑脸的位置
xvel = 1 #设置笑脸的水平移动
yvel = 1 #设置笑脸的垂直移动
scale = 100 #笑脸的缩放比
def __init__(self,pos,xvel,yvel):
pygame.sprite.Sprite.__init__(self)
self.image = pic
self.image = pygame.transform.scale(self.image,(self,scale,self,scale))
self.scale = random.randint(30,100)
self.rect = self.image.get_rect() #得到笑脸的矩形框
self.pos = pos
self.rect.x = pos[0] - self.scale/2 #点击时,让笑脸的中间出现在鼠标位置
self.rect.y = pos[1] - self.scale/2
self.xvel = xvel
self.yvel = yvel
def update(self):
self.rect.x += self.xvel
self.ract.y += self.yvel
if self.rect.x <= 0 or self.rect.x + self.scale > screen.get_width():
self.xvel = -self.xvel
if self.rect.y <= 0 or self.rect.y + self.scale > screen.get_height():
self.yvel = -self.yvel
while keep_going:
for event in pygame.event.get():
if event.type == pygame.QUIT:
keep_going = True
if event.type == pygame.MOUSEBUTTONDOWN:
if pygame.mouse.get_pressed()[0]:
mousebutton = True
else:
if pygame.mouse.pressed()[1]:
pos = pygame.mouse.get_pos()
clicked_喵iley = [s for s in speite_list if s.rect.collidepoint(pos)]
sprite_list.remove(clicked_喵ileys)
if event.type == pygame.MOUSEBUTTONUP:
mousebutton = False
screen.fill(black)
sprite_list.update()
sprite_list.draw(screen)
clock.tick(60)
pygame.display.update()
if mousebutton:
speedx = random.randint(-5,5)
speedy = random.randint(-5,5)
new喵iley = 喵iley(pygame.mouse.get_pos(),speedx,speedy)
speed_list.add(new喵iley)
pygame.quit()点赞0
评论
peTerfrom PIL import Image
import os
def gen_img(size=0, target_dir='.', out_dir='out'):
"""
:param target_dir: 目标文件夹,默认为当前程序所在位置
:param size: 图片长宽中较大者缩放后的尺寸,输出图像比例保持不变, 默认保持原始尺寸
:param out_dir: 保存缩放后图像的文件夹
:return:
"""
if not os.path.exists(out_dir):
os.mkdir(out_dir)
files = os.listdir(target_dir)
img_ext = ['.png', '.jpg', '.gif', '.bmp', '.jpeg']
for file in files:
file_path = target_dir + os.sep + file
ext = os.path.splitext(file)[-1].lower()
if ext in img_ext:
new_img = img_resize(file_path, size)
if new_img.mode == 'RGBA':
alpha = new_img.split()[3]
new_img = new_img.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=255)
mask = Image.eval(alpha, lambda a: 255 if a <= 128 else 0)
new_img.paste(255, mask)
new_img.save(out_dir+os.sep+os.path.splitext(file)[0]+'.gif', transparency=255)
elif 'transparency' in new_img.info:
transparency = new_img.info['transparency']
new_img.save(out_dir+os.sep+os.path.splitext(file)[0]+'.gif',
transparency=transparency)
else:
new_img.save(out_dir+os.sep+os.path.splitext(file)[0]+'.gif')
def img_resize(file, size=1):
img = Image.open(file)
if size == 0:
scale = 1
else:
scale = max(img.size) / size
(width, height) = (int(img.width / scale), int(img.height / scale))
img2 = img.resize((width, height))
return img2
# 将程序所在位置下的图像等比例缩放,规则为长宽中较长边缩放成第一个参数值,默认保存到当前位置下的 out 文件夹中
gen_img()
点赞0
评论