2014-09-09 5 views
1
내가 이런 이미지/jped base64로 코드가

에 이펙 자료 64,이미지/이미지

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...... 

나는 영상이 코드를 변환 및 JPEG 파일로 파일을 저장해야합니다. 그리고 Windows Form (C#)을 찾았습니다. 텍스트 상자 및 단추에 삽입하십시오. 기본 64 코드 (코드는 위)를 텍스트 상자에 삽입하고 버튼을 클릭하십시오.

private void button1_Click(object sender, EventArgs e) 
    { 
     if (!string.IsNullOrEmpty(textBox1.Text)) 
     { 
      string imageDataParsed = textBox1.Text.Substring(textBox1.Text.IndexOf(',') + 1); 
      byte[] imageBytes = Convert.FromBase64String(imageDataParsed); 

      MemoryStream ms1 = new MemoryStream(imageBytes); 
      Image img = Image.FromStream(ms1); 
      img.Save(Application.StartupPath + "\\Images\\1.jpg", ImageFormat.Jpeg); 
     } 
    } 

파일은 jpeg로 저장합니다. 하지만이 파일은 Windows Photo Viewer에서 이와 같이 보입니다. enter image description here

Google 크롬이 기본 64 코드를 실행할 때 문제가 없습니다. Chrome 브라우저에서 멋진 화면보기.

요약 질문 : 이미지에 base64 코드가 필요하며이 파일을 jpeg 파일로 저장하십시오. 어떻게이 문제를 해결할 수 있습니까? 감사합니다. .

+0

텍스트 상자에서 오는 경우 base64 UrlEncoded의 일부 또는 UntEncoded 다른 특수 문자가 있습니까? – xDaevax

+0

지금까지 완전한 문자열을 얻지 못했던 것 같습니다. 관찰하는 행동을 나타내는 base64 문자열의 * small * 및 * complete * 예제 인 인라인 문자열로 샘플을 업데이트하십시오. –

+0

이 코드는 저에게 효과적입니다. 나는 또한 잘린 Base64 문자열로 (나는 당신의 문제라고 생각했다) 시도했지만, FormatException이 생겨서 이미지가 저장되지 않았다. – kol

답변

1

똑바로 이미지에로드하지 않도록 파일에 Base64로 변환이 방법이 모두-재치 원본 이미지처럼해야 참조 여전히 문제를 보여주는 이미지를 해결하지 못합니다.

byte[] newfile = Convert.FromBase64String(data); 
File.WriteAllBytes(@"C:\path\to\file.jpg", newfile); 
+0

네 말이 맞아. 지금 테스트를 해봤는데 문제를 보여주는 내 그림을 해결하지 못했습니까? : – aynakolik

+0

그런 다음 base64 이미지가 손상된 jpeg 이미지입니까, 아니면 jpeg가 아니라 png 또는 gif입니까? 16 진 편집기에서 헤더를 확인해야합니다. 다른 이미지 형식이 Window Photo Viewer에서 잘못된 확장자로 표시 될 수 있다는 것을 알고 있습니다. 그러나 어긋난다. – SSpoke