将图像保存到Windows Phone 7中的本地数据库

时间:2014-10-09 11:26:48

标签: windows-phone-7

我已经在互联网上搜索了这个,但我还没有真正得到答案。

正在创建的应用程序的一部分要求用户拍照并将此照片保存到本地数据库。我尝试这样做如下,但该方法要求我传递一个位图(System.Windows.Media.Imaging),图像控件很好Image(System.Windows.Controls.Image)

public byte[] convertToByte(BitmapImage img)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                WriteableBitmap btmap = new WriteableBitmap(img.PixelWidth, img.PixelHeight);
                Extensions.SaveJpeg(btmap, ms, img.PixelWidth, img.PixelHeight, 0, 100);
                ms.Seek(0, SeekOrigin.Begin);
                return ms.ToArray();
            };
        }

我试过的另一个解决方案假设我的图像位于应用程序中,而不是由相机捕获的情况

public byte[] convertToByte(Image img)
        {
            BitmapImage image = new BitmapImage();
            image.CreateOptions = BitmapCreateOptions.None;
            image.UriSource = new Uri(img.Source.ToString(), UriKind.Relative);
            WriteableBitmap wbmp = new WriteableBitmap(image);
            MemoryStream ms = new MemoryStream();
            wbmp.SaveJpeg(ms, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100);
            return ms.ToArray();
        }

如何重新定义保存图像的方法之一?或者有更好的方法吗? 提前致谢。

1 个答案:

答案 0 :(得分:0)

所以我终于找到了答案。 我在追求这个过程中经历过的事情!

public Byte[] ImageToByteArray(Image img)
        {
            try
            {
                MemoryStream ms = new MemoryStream();
                WriteableBitmap bmp = new WriteableBitmap(img.Source as BitmapSource);
                bmp.SaveJpeg(ms, bmp.PixelWidth, bmp.PixelHeight, 0, 100);
                Byte[] bytImage = ms.GetBuffer();
                return bytImage;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

希望得到类似问题的人得到帮助!