Попробуйте это с pygame:
import pygame
pygame.init() // eliminate error, pygame.error: video system not initialized
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
d = "space key"
print "You pressed the", d, "."
Используйте свойство Pixelformat , это возвращает перечисление Pixelformat , которое может иметь такие значения, как fe Format24bppRgb
, что, очевидно, равно 24 бит на пиксель, так что вы сможете сделать что-то вроде этого:
switch(Pixelformat)
{
...
case Format8bppIndexed:
BitsPerPixel = 8;
break;
case Format24bppRgb:
BitsPerPixel = 24;
break;
case Format32bppArgb:
case Format32bppPArgb:
...
BitsPerPixel = 32;
break;
default:
BitsPerPixel = 0;
break;
}
Свойство Bitmap.PixelFormat сообщит вам тип формата пикселей, который имеет растровое изображение, и исходя из этого вы можете определить количество бит на пиксель. Я не уверен, есть ли лучший способ получить это, но наивный способ, по крайней мере, будет примерно таким:
var bitsPerPixel = new Dictionary<PixelFormat,int>() {
{ PixelFormat.Format1bppIndexed, 1 },
{ PixelFormat.Format4bppIndexed, 4 },
{ PixelFormat.Format8bppIndexed, 8 },
{ PixelFormat.Format16bppRgb565, 16 }
/* etc. */
};
return bitsPerPixel[bitmap.PixelFormat];
Rather than creating your own function, I'd suggest using this existing function in the framework:
Image.GetPixelFormatSize(bitmap.PixelFormat)