在Silverlight中保存没有对话框的图像

时间:2011-06-13 22:46:49

标签: silverlight silverlight-4.0 file-io

我的应用程序将是一个绘图画布,用户可以单击“保存”按钮。然后,图像将保存在xap文件所在的服务器内。

我认为我不能使用对话框。如何保存图像?

我考虑过将图片转换为流,然后将其写入路径。这是正确的方法吗?

修改

我尝试将图像转换为流并写入,但我遇到访问权限被拒绝错误。所以我现在正在使用Webclient。一切正常,没有错误,但即使没有错误,图像也不会覆盖。以下是我的代码,请赐教。谢谢!

//Code to create WriteableBitnap with InkPresenter named "strokeTest"//

WriteableBitmap wb = new WriteableBitmap(strokeTest, null);

//End...Code to create WriteableBitnap with InkPresenter named "strokeTest"//


//code used to convert WrtiteableBitmap to byte array//
int w = wb.PixelWidth;
int h = wb.PixelHeight;
int[] p = wb.Pixels;
int len = p.Length;
byte[] result = new byte[4 * w * h];

// Copy pixels to buffer
for (int i = 0, j = 0; i < len; i++, j += 4)
{
    int color = p[i];
    result[j + 0] = (byte)(color >> 24); // A
    result[j + 1] = (byte)(color >> 16); // R
    result[j + 2] = (byte)(color >> 8);  // G
    result[j + 3] = (byte)(color);       // B
 }
 //End...code used to convert WrtiteableBitmap to byte array//


 //Code to overwrite the file using Webclient//
 WebClient wc = new WebClient();
 Uri u = new Uri("/test/brush_shape.png", UriKind.Relative);
 wc.OpenWriteAsync(u, null, result);
 //End...Code to overwrite the file using Webclient//

1 个答案:

答案 0 :(得分:0)

为什么你没有在这个控件上使用图像控件并使Source属性受益?那么你可以创建图像的字节数组并发送到服务器