2012-11-13 3 views
1

base64로 인코딩 된 이미지가 있습니다. C#을 통해이 이미지를 디코딩하면 다음과 같은 코드로 매력처럼 작동합니다 그러나.NET에서 성공하는 동안 imagecreatefromstring이 실패합니다.

byte[] imageBytes = Convert.FromBase64String(decodeImageForm.Data); 
var ms = new System.IO.MemoryStream(imageBytes, 0, imageBytes.Length); 

// Convert byte[] to Image 
ms.Write(imageBytes, 0, imageBytes.Length); 
pbImage.Image = Image.FromStream(ms, true); 

, 다음 코드는 다음과 같은 경고와 함께 실패

$payload = "..."; // same text as used above 
$data = base64_decode($payload);  
$im = imagecreatefromstring($data); 
if ($im !== false) 
{ 
    header('Content-Type: image/png'); 
    imagepng($im); 
    imagedestroy($im);  
} 
else 
{   
    die("Failed to create image from string. ".strlen($payload)); 
} 

를 사용하여 PHP에서 동일한 텍스트를 디코딩 할 때 :

경고 : imagecreatefromstring은() : 데이터는 인식 형식이 아닌

,여기

은 (호환 2.0.34) 번들 GD 지원

  • GD 버전을 사용할 수

    • 은 phpinfo()의 GD 섹션
    • FreeType에서 지원 FreeType에서
    • FreeType에서 버전으로
    • FreeType에서 연계를 사용할 수있다 2.4.6
    • T1Lib 지원 사용
    • GIF 읽기 지원 사용
    • ,451,515,
    • GIF 지원
    • JPEG 지원
    • PNG 지원 의 libpng 버전 1.2.46 WBMP 지원 XBM 지원

    지침 로컬 값 마스터 값

  • 을 사용 사용 가능
  • libJPEG 버전도 6b를 사용 사용 만들기 gd.jpeg_ignore_warning 0 0

    무엇이 여기에 있습니까? 때때로 작동하는 이미지가 있습니다

  • 답변

    -1

    그래서 이미지의 MIME 유형은 PHP에서 GD가 지원하지 않는 x-bmp입니다 ... 문자열을 이미지 리소스로 디코딩 할 수있었습니다. following link을 약간 수정하면 파일 이름이 아닌 문자열 스트림을 사용할 수 있습니다.