将inkpresenter签名转换为Base64字符串

时间:2015-06-30 04:45:35

标签: c# .net xaml base64

我的要求是需要使用InkPresenter捕获用户签名... 然后需要将inkpresenter数据转换为base64字符串..

xaml中的我的Inkpresenter

<InkPresenter x:Name="inkSignature" Height="428" Width="450"
                MouseLeftButtonDown="MyIP_MouseLeftButtonDown" 
                LostMouseCapture="MyIP_LostMouseCapture" 
                MouseMove="MyIP_MouseMove" 
                Background="White" Canvas.Top="53" Canvas.Left="3" Opacity="1"   >

            </InkPresenter>

单击Proceedbutton ..i需要捕获Inkpresenter内容并保存到base64字符串..

我实施的逻辑..

private void ProceedClick(object sender, RoutedEventArgs e)
    {
        WriteableBitmap wbBitmap = new WriteableBitmap(inkSignature, new TranslateTransform());
        EditableImage eiImage = new EditableImage(wbBitmap.PixelWidth, wbBitmap.PixelHeight);

        try
        {
            for (int y = 0; y < wbBitmap.PixelHeight; ++y)
            {
                for (int x = 0; x < wbBitmap.PixelWidth; ++x)
                {
                    int pixel = wbBitmap.Pixels[wbBitmap.PixelWidth * y + x];
                    eiImage.SetPixel(x, y,
                    (byte)((pixel >> 16) & 0xFF),
                    (byte)((pixel >> 8) & 0xFF),
                    (byte)(pixel & 0xFF), (byte)((pixel >> 24) & 0xFF)
                    );
                }
            }
        }
        catch (System.Security.SecurityException)
        {
            throw new Exception("Cannot print images from other domains");
        }

        // Save it isolated storage
        Stream streamPNG = eiImage.GetStream();
        StreamReader srPNG = new StreamReader(streamPNG);
        byte[] baBinaryData = new Byte[streamPNG.Length];
        long bytesRead = streamPNG.Read(baBinaryData, 0, (int)streamPNG.Length);

        //Obtain a virtual store for application
        IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
        IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(ClsCommon.signImage, FileMode.Create, fileStorage);
        isfStream.Write(baBinaryData, 0, baBinaryData.Length);
        isfStream.Close();

        MessageBox.Show("Your signature has been saved. Thank you !", "mPOS", MessageBoxButton.OK);
        ConvImagetoBase64();
       // this.NavigationService.GoBack();
    }

    public void ConvImagetoBase64()
    {
        byte[] data;
        using (var store = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (store.FileExists(ClsCommon.signImage))
            {
                using (IsolatedStorageFileStream isfs = store.OpenFile(ClsCommon.signImage, FileMode.Open, FileAccess.Read))
                {

                    // Allocate an array large enough for the entire file
                    data = new byte[isfs.Length];

                    // Read the entire file and then close it
                    isfs.Read(data, 0, data.Length);
                    isfs.Close();
                }
                // Create memory stream and bitmap
                MemoryStream ms = new MemoryStream(data);
                BitmapImage bi = new BitmapImage();

                byte[] bytearray = null;
                bytearray = ms.ToArray();
                string result= Convert.ToBase64String(bytearray);

            }
        }
    }

在String结果值=调试时     ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// //////////////////////////////////////////////// XKZ / / 8AAP // // AAD T / F / v ///////////////////////////////////// + 19F + / WUF // // 8AAP AAD // qOj / v的//////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// //////////////////////// VV7 / v8AAP // // AAD WAA // 77 + / 7 /////////// /////////////////////////// 0VF // // 8AAP AAD // Z09 ///////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// //////////////////////

很多这个......终于以 / zOLXCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

我的错误是什么......请指导我重新制作这个......

如果您有任何其他简单的方法,请建议....

0 个答案:

没有答案