【发布时间】:2009-09-08 13:42:07
【问题描述】:
如何将 Silverlight 中的 WriteableBitmap 保存到文件系统中,我不确定如何使用 FileStream 来完成这项工作,它可以是 Bitmap、PNG、Jpeg 格式等,只要商业库不是必填。
可以这样做吗?
下面是我对 SaveDialog 的调用:
Dim SaveDialog As New SaveFileDialog
If SaveDialog.ShowDialog Then
Try
Using FileStream As Stream = SaveDialog.OpenFile
' Save Image File Code Here
End Using
Catch ex As Exception
End Try
End If
编辑
添加了对 WritableBitmap 的提及,因为这是我的 XAML 正在写入的内容,我只需要 为了保存它,有一个 WriteableBitmap.Pixels 属性,它是一个整数像素的一维数组,可以将其放入文件流中吗?如果可以,如何?
这是我的一些示例代码,用于将像素流写入 文件,但是它不会“位图化”数据和 结果输出没用,但它正在写我的图像流,我只是 需要知道如何标记它,使其成为位图文件(或其他任何东西)。 我之前已经找到了 JPEG 和 PNG 示例,但它们都没有很好地解释它们是如何工作的,我可能不得不使用 PNGEncoding 方法,因为这是唯一可以集成到我的代码库中的方法。但是那里有简单的 BMP 文件版本吗?
Dim Image As Imaging.WriteableBitmap = _Style.Image
Dim Area As Integer = Image.PixelWidth * Image.PixelHeight
For Raster As Integer = 0 To Area - 1
Dim Pixel As Integer = Image.Pixels(Raster)
Dim Bytes() = BitConverter.GetBytes(Pixel And &HFF)
FileStream.Write(Bytes, 0, 4)
Next
【问题讨论】:
-
+1,这是一个非常好的问题。这是否有理由必须来自 BitmapImage?
-
我的意思是 WritableBitmap,但如果这是必须从 Silverlight 保存图像的方式,则前者适用,但是任何从 Silverlight 保存图像的方法都可以接受
标签: vb.net silverlight stream bitmapimage