2012-01-13 21 views
0

次のコードを見つけましたが、ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)に何を渡すべきか理解できません。C#FileUploadを使用した画像のアップロード

は私がシステムに画像をアップロードすると、私のコードは私がImageToBase64(FileUpload.FileBytes, "Image/PNG")をやってみました。しかし、私は構文エラーを取得しています

public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      image.Save(ms, format); 
      byte[] imageBytes = ms.ToArray(); 
      string base64String = Convert.ToBase64String(imageBytes); 
      return base64String; 
     } 
    } 

で参考のためにImageToBase64

にそれを渡すようにするFileUploadのツールが必要です。このコードに使用できる正しい構文は何ですか?

答えて

6

この関数はImage型とImageFormat型の引数をとり、byte []とstringを渡すためです。あなたは、MIMEタイプを必要としない、とあなたは唯一のメソッドシグネチャ状態として

var base64String = Convert.ToBase64String(FileUpload.FileBytes); 
+0

ありがとうございます! 'Base64String'を' Image'に戻すような簡単な方法はありますか? –

+0

Convert.FromBase64CharArray()で十分です。 – jishi

+0

申し訳ありませんJishi 'Convert.FromBase64CharArray()'を使って 'base64String'をイメージに戻す方法を理解できませんでした。 –

0

が必要になります

、2番目のパラメータはタイプImageFormatです。これは列挙ですので、あなたがそうのようにそれを使用したい:この場合

/// create or load a bitmap 
var bitmap = new Bitmap(.....); 

var base64string = ImageToBase64(bitmap,ImageFormat.Bmp); 

ImageFormatパラメータは明らかにあなたが(JPEG、PNGのデータをみたいどのような形式Save()方法を指示するために使用され、 BMP、など)。 MIMEタイプは不十分であり、この方法はWeb固有ではないため、実際にはこのコンテキストに属しません。

+0

ここでFileUploadを使うべきですか?私は '新しいビットマップ(....);で書くべきですか? –

+0

@マコーダー私はあなたがすでに持っていたイメージをベース64の文字列に変換しようとしていると仮定しました。フォームPOST(おそらくASP.NETで)から受け取った 'FileUpload'をすでに持っているなら、ベース64エンコーディングをまったく行う必要はありません。あなたは正確に何をしようとしていますか? –

関連する問題