加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 如何在Silverlight 3.0中使用SaveFileDialog保存Bitma

发布时间:2020-12-17 00:04:36 所属栏目:大数据 来源:网络整理
导读:如何将Silverlight中的WriteableBitmap保存到文件系统中,我不确定如何处理FileStream以使其工作,它可以是Bitmap,PNG,Jpeg格式等,只要不需要商业库. 是否有可能做到这一点? 这是我对SaveDialog的调用,如下: Dim SaveDialog As New SaveFileDialog If SaveDi
如何将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属性,它是一个整数像素的一维数组,可以放入文件流,如果是这样,怎么样?

以下是我将Pixel Stream写入a的示例代码
文件,但这工作它不“bitmapify”数据和
结果输出没用,但它正在写我的图像流,我只是
需要知道如何标记它以便它是一个位图文件(或其他任何东西).
我之前找到了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,4)
        Next
有几个开源编码器:

FJCore:http://code.google.com/p/fjcore/

Joe Stegman的PNG编码器:http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx

FreeImage:http://freeimage.sourceforge.net/

您可以使用其中任何一种来编码各种格式.这是一篇关于保存WriteableBitmap的帖子:

http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2009/03/18/Silverlight-3-1320-The-Bitmap-API-2F00-WriteableBitmap.aspx

更新:
在进行了一些搜索之后,由于安全问题,在SL3中将WriteableBitmap保存到文件中似乎是有限的.有一个解决方法:

http://geekswithblogs.net/braulio/archive/2009/07/12/export-canvas-to-png-and-save-it-in-your-local.aspx

看起来您必须将Canvas的内容保存到文件中.您应该能够修改样本以保存JPEG或其他格式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读