-5
在Silverlight中,有一個包含線條,矩形,圖像的畫布。 我想從畫布中獲取圖像流。可能嗎?將Silverlight中的畫布轉換爲C中的圖像流#
在Silverlight中,有一個包含線條,矩形,圖像的畫布。 我想從畫布中獲取圖像流。可能嗎?將Silverlight中的畫布轉換爲C中的圖像流#
您可以從https://code.google.com/p/fjcore/獲得開源的FJCore代碼。將FJCore代碼導入您的Silverlight應用程序,然後使用下面的代碼。
WriteableBitmap wb = new WriteableBitmap(this.canvas1,null);
Stream sm = GetBase64Image(wb);
public static Stream GetBase64Image(WriteableBitmap bitmap)
{
int width = bitmap.PixelWidth;
int height = bitmap.PixelHeight;
int bands = 3;
byte[][,] raster = new byte[bands][,];
for (int i = 0; i < bands; i++)
{
raster[i] = new byte[width, height];
}
for (int row = 0; row < height; row++)
{
for (int column = 0; column < width; column++)
{
int pixel = bitmap.Pixels[width * row + column];
raster[0][column, row] = (byte)(pixel >> 16);
raster[1][column, row] = (byte)(pixel >> 8);
raster[2][column, row] = (byte)pixel;
}
}
ColorModel model = new ColorModel { colorspace = ColorSpace.RGB };
FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);
MemoryStream stream = new MemoryStream();
JpegEncoder encoder = new JpegEncoder(img, 100, stream);
encoder.Encode();
return stream;
}
_是否有可能?_你試過了嗎? –
嘗試一些解決方案,並不起作用。 – Henry