zoukankan      html  css  js  c++  java
  • 如何将SL的image保存到SL的独立存储文件系统

    /// <summary>
    /// 将SL的image保存到独立存储文件系统
    /// TFSoft - 2011/06/07
    /// </summary>
    /// <param name="ISFileName">独立存储文件名</param>
    /// <param name="SLImage">需要保存的图片源(Silverlihgt image 组件引用)</param>
    /// <returns>无错返回空串,出错返回出错信息</returns>
    public static string ImageSave(string ISFileName, Image SLImage)
    {
    var ISAccErr = "独立存储文件系统访问失败。";
    var Rlt = "";
    var WBmp = new WriteableBitmap(SLImage.Source as BitmapSource);
    var Buf = new byte[2 * 4 + WBmp.Pixels.Length * 4];
    BitConverter.GetBytes(WBmp.PixelWidth).CopyTo(Buf, 0);
    BitConverter.GetBytes(WBmp.PixelHeight).CopyTo(Buf, 4);
    for (var I = 0; I < WBmp.Pixels.Length; I++)
    {
    BitConverter.GetBytes(WBmp.Pixels[I]).CopyTo(Buf, I * 4 + 8);
    }
    try
    {
    var FO = IsolatedStorageFile.GetUserStoreForApplication();
    var FS = FO.OpenFile(ISFileName, System.IO.FileMode.OpenOrCreate);
    FS.Write(Buf, 0, Buf.Length); FS.Close(); FS.Dispose();
    }
    catch
    {
    Rlt = ISAccErr;
    }
    return Rlt;
    }

    /// <summary>
    /// 将保存在独立存储文件系统中的数据恢复到SL的image中
    /// TFSoft - 2011/06/07
    /// </summary>
    /// <param name="ISFileName">独立存储文件名</param>
    /// <param name="SLImage">恢复到图片源(Silverlihgt image 组件引用)</param>
    /// <returns>无错返回空串,出错返回出错信息</returns>
    public static string ImageRestore(string ISFileName, Image SLImage)
    {
    var ISAccErr = "独立存储文件系统访问失败。";
    var ISFileErr = "独立存储文件格式错误。";
    var Rlt = ""; var Buf = null as byte[];
    try
    {
    var FO = IsolatedStorageFile.GetUserStoreForApplication();
    var FS = FO.OpenFile(ISFileName, System.IO.FileMode.OpenOrCreate);
    Buf = new byte[FS.Length]; FS.Read(Buf, 0, Buf.Length);
    FS.Close(); FS.Dispose();
    }
    catch
    {
    Rlt = ISAccErr;
    }
    if (Rlt == "")
    {
    if (!(Buf.Length >= 2 * 4))
    {
    Rlt = ISFileErr;
    }
    else
    {
    var PixelWidth = BitConverter.ToInt32(Buf, 0);
    var PixelHeight = BitConverter.ToInt32(Buf, 4);
    var WBmp = new WriteableBitmap(PixelWidth, PixelHeight);
    if (!(Buf.Length >= (2 * 4 + WBmp.Pixels.Length * 4)))
    {
    Rlt = ISFileErr;
    }
    else
    {
    for (var I = 0; I < WBmp.Pixels.Length; I++)
    {
    WBmp.Pixels[I] = BitConverter.ToInt32(Buf, I * 4 + 8);
    }
    SLImage.Source = WBmp;
    }
    }
    }
    return Rlt;
    }


    1)如何将SL的image保存到SL的独立存储文件系统;

    2)如何从SL的独立存储区保存的图片数据恢复到SL的image中。

    如果这两个,能做到,你的要求一定能达到。无非是加一个ValueConvertor。

  • 相关阅读:
    [J2ME Q&A]MMAPI的Cannot parse this type of AMR异常之讨论
    FM91.5的EasyMorning节目爱听吗?
    [EntLibFAQ]“不允许所请求的注册表访问权”的解释[0508Update]
    亮出你的组合竞争力的王牌
    隔离,隔离,再隔离!
    zuma三阶段论和技术道路[一]
    分享下我们部门内部知识点培训教程[SIP/J2ME/Setup/LoadRunner/Domino][0706Up]
    [Remoting FAQ]Loading a Remoting Host On IIS得到BadImageFormatException
    通过讲课来建立自己的知识系统
    j2medev“用户界面和多媒体”版面问题整理[0407更新]
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/2297725.html
Copyright © 2011-2022 走看看