2012-01-13 2 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 형식이 필요하지 않습니다, 당신은 두 번째 매개 변수는 유형 ImageFormat이며, 메소드 서명 상태로서

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

감사합니다. 'Base64String'을'Image'로 다시 변환하는 간단한 방법이 있습니까? –

+0

Convert.FromBase64CharArray()로 충분합니다. – jishi

+0

죄송합니다 Jishi'Convert.FromBase64CharArray()'를 사용하여'base64String'을 다시 이미지로 변환하는 방법을 이해할 수 없었습니다. –

0

을하기 만합니다. 이 열거 형입니다, 그래서 당신과 같이 그것을 사용하십시오 :이 경우

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

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

ImageFormat 매개 변수가 분명히 당신은 (JPEG, PNG의 데이터를 원하는 어떤 형식 Save() 방법을 알려주는 데 사용됩니다, BMP, 등). MIME 유형은 충분하지 않으며이 방법이 웹 특정 적이 아니기 때문에이 컨텍스트에 실제로 속하지 않습니다.

+0

여기서 FileUpload를 사용해야합니까? '새로운 비트 맵 (....);에 무엇을 써야합니까? –

+0

@Madcoder 당신이 이미 가지고있는 이미지를 기본 64 문자열로 변환하려고한다고 가정했는데, 그 방법은 당신이 게시 한 방식입니다. 폼 POST (아마도 ASP.NET에서)로부터받은'FileUpload'를 이미 가지고 있다면,베이스 64 인코딩을 전혀 할 필요가 없습니다. 정확히 당신은 무엇을하려고합니까 ?? –

관련 문제