배열의 각 요소가있는 회색 레벨 이미지를 나타내는 2 차원의 double[,] rawImage
배열은 0 ~ 1의 유리한 값을 가지고 있으며, 이미지로 변환하려면 이미지가 필요합니다. 나는 다음과 같은 코드를 사용했습니다 :두 개의 두 차원 배열에서 비트 맵 만들기
private Bitmap ToBitmap(double[,] rawImage)
{
int width = rawImage.GetLength(1);
int height = rawImage.GetLength(0);
Bitmap Image= new Bitmap(width, height);
for (int i = 0; i < height; i++)
for (int j = 0; j < YSize; j++)
{
double color = rawImage[j, i];
int rgb = color * 255;
Image.SetPixel(i, j, rgb , rgb , rgb);
}
return Image;
}
을하지만 너무 느린 것 같다. 데이터 형식이 short
인 포인터를 사용하여 위의 작업을 수행 할 수 있는지 알 수 없습니다.
이 함수를 처리하기 위해 포인터를 사용하여 더 빠른 코드를 작성하려면 어떻게해야합니까?
는 [ 'bitMap.LockBits' (http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx) –
와 setPixel 모든 화소에 대한 전체 이미지를 잠근다. 전체 이미지를 잠그면 안전하지 않은 코드를 사용하여 이미지의 모든 값을 쓸 수 있습니다. http://stackoverflow.com/questions/7768711/setpixel-is-too-slow-is-there-a-faster-way-to-draw-to-bitmap – MrFox