Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在wp8中将图像转换为base64_C#_Image_Windows Phone 8_Base64 - Fatal编程技术网

C# 在wp8中将图像转换为base64

C# 在wp8中将图像转换为base64,c#,image,windows-phone-8,base64,C#,Image,Windows Phone 8,Base64,我的手机图库中有一张照片,如下所示: private void StackPanel_Tap_1(object sender, System.Windows.Input.GestureEventArgs e) { PhotoChooserTask pct = new PhotoChooserTask(); pct.Show(); pct.Completed += pct_Completed; } void pct_Completed(object sender, Pho

我的手机图库中有一张照片,如下所示:

private void StackPanel_Tap_1(object sender, System.Windows.Input.GestureEventArgs e)
{
    PhotoChooserTask pct = new PhotoChooserTask();
    pct.Show();
    pct.Completed += pct_Completed;
}

void pct_Completed(object sender, PhotoResult e)
{
    BitmapImage img = new BitmapImage();

    if (e.ChosenPhoto != null)
    {
        img.SetSource(e.ChosenPhoto);
        imgphotochoser.Source = img;
    }
}
现在我想通过web服务将此图像保存到数据库中。因此,我需要将此图像转换为base64字符串,但我如何才能做到这一点

我尝试过这个,但它引发了一个异常:

public string imagetobase64(image image,
  system.drawing.imaging.imageformat format)
{
    using (memorystream ms = new memorystream())
    {
        // convert image to byte[]
        image.save(ms, format);
        byte[] imagebytes = ms.toarray();

        // convert byte[] to base64 string
        string base64string = convert.tobase64string(imagebytes);
        return base64string;
    }
}

只需将
字节[]
转换为base64
字符串

byte[] bytearray = null;

using (MemoryStream ms = new MemoryStream())
{
    if (imgphotochoser.Source != null)
    {
        WriteableBitmap wbitmp = new WriteableBitmap((BitmapImage)imgphotochoser.Source);

        wbitmp.SaveJpeg(ms, 46, 38, 0, 100);
        bytearray = ms.ToArray();
    }
}
string str = Convert.ToBase64String(bytearray);
Base64到字节[]:

byte[] fileBytes = Convert.FromBase64String(s);

using (MemoryStream ms = new MemoryStream(fileBytes, 0, fileBytes.Length))
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.SetSource(ms);
    return bitmapImage;
}

只需将
字节[]
转换为base64
字符串

byte[] bytearray = null;

using (MemoryStream ms = new MemoryStream())
{
    if (imgphotochoser.Source != null)
    {
        WriteableBitmap wbitmp = new WriteableBitmap((BitmapImage)imgphotochoser.Source);

        wbitmp.SaveJpeg(ms, 46, 38, 0, 100);
        bytearray = ms.ToArray();
    }
}
string str = Convert.ToBase64String(bytearray);
Base64到字节[]:

byte[] fileBytes = Convert.FromBase64String(s);

using (MemoryStream ms = new MemoryStream(fileBytes, 0, fileBytes.Length))
{
    ms.Write(fileBytes, 0, fileBytes.Length);
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.SetSource(ms);
    return bitmapImage;
}

@DGibbs:是的,请看我编辑的答案C#区分大小写language@DGibbs:命名空间“System”中不存在类型或命名空间名称“Drawing”(是否缺少程序集引用?)?我不知道哪个assembly用于drowing,它在“save”@DGibbs中也给出了错误:当我当时尝试添加system.drowing dll时,它将给出错误“对更高版本的引用或不兼容的程序集无法添加到项目”我怎样才能解决这个问题problem@DGibbs:是的,请看我编辑的答案C#区分大小写language@DGibbs:命名空间“System”中不存在类型或命名空间名称“Drawing”(是否缺少程序集引用?)?我不知道哪个assembly用于drowing,它在“save”@DGibbs中也给出了错误:当我当时尝试添加system.drowing dll时,它将给出错误“对更高版本的引用或不兼容的程序集无法添加到项目”我该如何解决这个问题?您能帮我吗?我正在使用此代码对图像进行编码以保存在SQLite数据库中,但当我尝试解码时,在尝试从Base64String转换时,我会得到“FormatException”,“Base-64字符数组或字符串的长度无效…”。。。。知道为什么吗?把图像转换成64位和把64位转换成图像怎么样?你能帮我一下吗?我用这段代码对图像进行编码以保存在SQLite数据库中,但是当我尝试解码时,在尝试从Base64String转换时,我得到了“FormatException”,“Base-64字符数组或字符串的长度无效…”。。。。知道为什么吗?把图像转换成64位和把64位转换成图像怎么样?