как получить битспиксель из растрового изображения

Попробуйте это с 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, "."
20
задан TheLethalCoder 17 November 2016 в 11:58
поделиться

5 ответов

Используйте свойство 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;      
 }
1
ответ дан 29 November 2019 в 22:26
поделиться
2
ответ дан 29 November 2019 в 22:26
поделиться

Свойство 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];
0
ответ дан 29 November 2019 в 22:26
поделиться

А как насчет Image.GetPixelFormatSize ()?

4
ответ дан 29 November 2019 в 22:26
поделиться

Rather than creating your own function, I'd suggest using this existing function in the framework:

Image.GetPixelFormatSize(bitmap.PixelFormat)
89
ответ дан 29 November 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: