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
ここで何が欠けていますか?時々うまくいく画像があります