비트 맵에서 비트 퍼 픽셀을 제공해야하는 타사 구성 요소가 있습니다.비트 맵에서 Bitsperpixel을 얻는 방법
"픽셀 당 비트 수"를 얻는 가장 좋은 방법은 무엇입니까?
나의 출발점은 다음 빈 방법 : -
public int GetBitsPerPixelMethod(system.drawing.bitmap bitmap)
{
//return BitsPerPixel;
}
비트 맵에서 비트 퍼 픽셀을 제공해야하는 타사 구성 요소가 있습니다.비트 맵에서 Bitsperpixel을 얻는 방법
"픽셀 당 비트 수"를 얻는 가장 좋은 방법은 무엇입니까?
나의 출발점은 다음 빈 방법 : -
public int GetBitsPerPixelMethod(system.drawing.bitmap bitmap)
{
//return BitsPerPixel;
}
가 Pixelformat property를 사용, 이것은 Pixelformat enumeration는 f.e. 같은 값을 가질 수있는 반환 분명히 픽셀 당 24 비트 Format24bppRgb
, 그래서 당신은 같은 것을 할 수 있어야한다 :
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];
Image.GetPixelFormatSize()는 어떻게됩니까?
오히려 자신의 함수를 만드는 것보다, 내가 틀이 기존 기능을 사용하는 것이 좋습니다 것 :
Image.GetPixelFormatSize(bitmap.PixelFormat)
var source = new BitmapImage(new System.Uri(pathToImageFile));
int bitsPerPixel = source.Format.BitsPerPixel;
은 위의 코드는 필요 최소한 .NET 3.0
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.aspx
안녕하세요. 좋은 답변 : 테스트 가능한 코드 응답, 작동하기위한 명시된 가정 (.NET 버전) 및 설명서 링크. 당신은 아마도 질문에 제공된 기존의'bitmap' 변수/function-argument를 사용했을 것입니다. 그러나 대답에 새로운 인수 ('source')를 만드는 것이 좋습니다. – poplitea
이것은이 질문에 대한 대답으로 받아 들여야합니다 –
이것은 답변 일뿐입니다. 공유해 주셔서 감사합니다. – datoml