IRaster 转换为 Bitmap 方法二
IRaster 转换为 Bitmap 方法二
1 /// <summary> 2 /// 3 /// </summary> 4 /// <param name="pRaster"></param> 5 /// <returns></returns> 6 public static Bitmap SaveBitmap(IRaster pRaster) 7 { 8 IRaster2 pRaster2 = pRaster as IRaster2; 9 //获取图层的行列值 10 IRasterProps pRasterProps = pRaster as IRasterProps; 11 int Height = pRasterProps.Height; 12 int Width = pRasterProps.Width; 13 14 //定义并初始化数组,用于存储栅格内所有像员像素值 15 double[,] PixelValue_red = new double[Height, Width]; 16 double[,] PixelValue_green = new double[Height, Width]; 17 double[,] PixelValue_blue = new double[Height, Width]; 18 19 //定义RasterCursor初始化,参数设为null,内部自动设置PixelBlock大小 20 IRasterCursor pRasterCursor = pRaster.CreateCursor(); 21 //获取该Cursor的PixelBlock中像素的值 22 for (int i = 0; i < Height; i++) 23 { 24 //string str = ""; 25 for (int j = 0; j < Width; j++) 26 { 27 PixelValue_red[i, j] = Convert.ToDouble(pRaster2.GetPixelValue(0, j, i)); 28 PixelValue_green[i, j] = Convert.ToDouble(pRaster2.GetPixelValue(1, j, i)); 29 PixelValue_blue[i, j] = Convert.ToDouble(pRaster2.GetPixelValue(2, j, i)); 30 } 31 } 32 33 Bitmap bitmap = new Bitmap(Width, Height); 34 for (int w = 0; w < Width; w++) 35 { 36 for (int h = 0; h < Height; h++) 37 { 38 Color color = Color.FromArgb((int)PixelValue_red[h, w], (int)PixelValue_green[h, w], (int)PixelValue_blue[h, w]); 39 bitmap.SetPixel(w, h, color); 40 } 41 } 42 43 return bitmap; 44 }
浙公网安备 33010602011771号