SDL_BlitSurface 总是很模糊。我究竟做错了什么?

SDL_BlitSurface always blurry. What am I doing wrong?

对于我的代码,我只想使用 SDL 1.2.15 在屏幕上显示 png 图像,不涉及缩放。但是,屏幕上显示的带有以下代码的图像总是模糊不清并且颜色不正确(见附图)。我做错了什么?

SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen = SDL_SetVideoMode(400, 240, 24, SDL_HWSURFACE);
SDL_Surface *image = IMG_Load ( "/image.png" );
SDL_BlitSurface ( image, NULL, screen, NULL );
SDL_Flip(screen);

下图左侧显示了灰色框内的原始图像(放大 - 每个黑色条纹为一个像素宽,原始尺寸为 11x11px),右侧显示了执行上述代码后屏幕显示的内容。

问题是特定于 SDL 实施平台的,因此通常对 SDL 无效