猫史档案馆


【求助帖】为什么显示该图片打不开

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


center_image

如图,为什么报错中显示该图片打不开?


回复

上一页1 页 / 共 1下一页
peTerpeTer

你是直接写代码吗

点赞0


评论


peTerpeTer

python要有素材才能用图片

点赞0


评论


peTerpeTer

把要用的素材放到文件夹

然后在编辑器里面打开

最后在文件里面写上代码

点赞0


评论


peTerpeTer

如果不是

点赞0


评论


peTerpeTer

我也不清楚

点赞0


评论


peTerpeTer

让我看看你的代码

点赞0


评论


宇宙中的星系宇宙中的星系

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


评论


peTerpeTer

你把他转换成别的形式

点赞0


评论


peTerpeTer

看看行不行

 

点赞0


评论


peTerpeTer

在吗

点赞0


评论


peTerpeTer

我有代码

点赞0


评论


peTerpeTer

from 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


评论


peTerpeTer

发了

点赞0


评论