2016-11-28 10 views
2

リソースファイルに保存された画像を取得し、base64文字列に変換しようとしています。しかし、それは以下のゴミ文字列を生成する私のコードです:リソースファイルに格納されている画像をAsp.netのBase64文字列に変換できません[C#]

String imgBase64=Base64FromByteArray(ExtractResource(Properties.Resources.products_tipp_110)); 

public static byte[] ExtractResource(Bitmap image) 
    { 
     MemoryStream ms = new MemoryStream(); 

     image.Save(ms, ImageFormat.Png); 
     if (ms == null) 
      return null; 
     byte[] imageByteArray = new byte[ms.Length]; 
     ms.Read(imageByteArray, 0, imageByteArray.Length); 
     return imageByteArray; 
    } 

private static string Base64FromByteArray(byte[] image) 
    { 
     return "base64:" + Convert.ToBase64String(image); 
    } 


output: 
    base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAA..... with all A's 

答えて

0

あなたは以下のようにバイト配列にメモリストリームを変換するために、このbyte[] imageByteArray = ms.ToArray()を試すことができます。

また、あなたのイメージがpngあなたがこの機能画像と画像のフォーマットを与えるImageFormat.Png

String imgBase64=Base64FromByteArray(ExtractResource(Properties.Resources.products_tipp_110)); 

public static byte[] ExtractResource(Bitmap image) 
    { 
     MemoryStream ms = new MemoryStream(); 

     image.Save(ms, ImageFormat.Png); 
     if (ms == null) 
      return null; 
     byte[] imageByteArray = ms.ToArray();; 
     return imageByteArray; 
    } 

private static string Base64FromByteArray(byte[] image) 
    { 
     return "base64:" + Convert.ToBase64String(image); 
    } 
+0

ありがとうございました:) – Maqsood

+0

@Maqsood偉大な、答えを受け入れることができますか? – Aruna

0

を使用していているように、それはあなたの文字列を返しますことを確認してください。

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; 
     } 
    } 
関連する問題