1

base64 でエンコードされた画像があります。C# を使用してこの画像をデコードすると、次のコードで魅力的に機能します。

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);

ただし、次のコードを使用して PHP で同じテキストをデコードしようとすると、

$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));
}

次の警告で失敗します。

警告: imagecreatefromstring(): データの形式が認識されていません

phpinfo() の GD セクションは次のとおりです。

  • GD サポートが有効
  • GD版同梱(2.0.34対応)
  • FreeType サポートが有効
  • FreeType フリータイプとの連携
  • FreeType バージョン 2.4.6
  • T1Lib サポートが有効
  • GIF 読み取りサポートが有効
  • GIF 作成のサポートが有効
  • JPEG サポートが有効
  • libJPEG バージョン 6b
  • PNG サポートが有効 libPNG バージョン 1.2.46 WBMP サポートが有効 XBM サポートが有効

ディレクティブ ローカル値 マスター値 gd.jpeg_ignore_warning 0 0

ここで何が欠けていますか?時々うまくいく画像があります

4

1 に答える 1

-1

そのため、画像の MIME タイプは x-bmp であることがわかりました。これは、PHP の GD ではサポートされていませんファイル名ではなく。

于 2012-11-16T08:16:19.007 に答える