【问题标题】:PyGame garbles horizontal pixel line at image loadPyGame 在图像加载时出现水平像素线乱码
【发布时间】:2016-05-13 15:28:18
【问题描述】:

我正在 PyGame 中加载一个 png 文件,在加载之前它看起来不错。 如果您查看图像屏幕截图的底部,则会发现一条水平像素线已失真。我包括原件和屏幕截图。我已经尝试过,smoothscale 和 normal scale,但似乎没有任何区别。 有人对我有一些提示吗? 我的加载代码如下:

palmTree = 'palmTree.png'
palm = pygame.image.load(palmTree).convert_alpha()
palm = pygame.transform.smoothscale(palm, (palmwidth, palmheight))
screen.blit(palm, (x, y))
pygame.display.flip()

感谢下面的 cmets。我相信我遇到的问题与我的程序无关。我运行了另一个朋友给我的程序和宾果游戏......同样的问题。会不会和我的 Mac Retina 显示屏有关?

【问题讨论】:

  • 您是否尝试过隔离事件并查看如果图像在未缩放的情况下被 blitted 问题是否仍然存在?
  • 您可以将使用过的import 行添加到您的帖子中吗?我无法重现您的问题。

标签: python image pygame load png


【解决方案1】:

下面的代码显示了棕榈树没有改变以及并排缩小了 10%。我没有看到任何奇怪的条形,因为我已经实现了它。

import pygame,sys,math
from pygame.locals import *

def Main():
    pygame.init()
    screen_dimensions = 640,480
    screen = pygame.display.set_mode(screen_dimensions,0,32)
    unaltered_palm = pygame.image.load("palm.png").convert_alpha()
    palm_rect = unaltered_palm.get_rect()
    scale = palm_rect[2:]
    scale[0],scale[1] =int(math.ceil(scale[0]*.9)),int(math.ceil(scale[1]*.9))
    altered_palm = pygame.transform.smoothscale(unaltered_palm,scale)

    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
        screen.blit(unaltered_palm,(50,125))
        screen.blit (altered_palm,(375,130))
        pygame.display.flip()

Main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2019-11-05
    • 2014-06-18
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多