PHP从二进制文件中显示png图像

时间:2013-04-11 08:26:34

标签: php image-processing binary png

我有二进制文件存储图像,我尝试获取此图像,但只显示黑色图像,我的代码或二进制文件可能出错。

<?php
function LoadPNG ($imgname) {
    $im = @imagecreatefrompng ($imgname); 

    if (!$im) { 
        $im= imagecreate (150, 30); 
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc= imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

        imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}

header('Content-Type: image/png');

$img = LoadPNG('452');

imagepng($img);
imagedestroy($img);
?>

使用此代码我得到了无法加载文件的错误

档案:testams.serveriai.lt.lazdynas.serveriai.lt/452 脚本:testams.serveriai.lt.lazdynas.serveriai.lt/crypt.php

1 个答案:

答案 0 :(得分:3)

你的PNG图片已损坏,它有一个\n字符而不是\r\n,(byte position 5)通常是FTP将文本模式下的二进制图像从Windows传输到Unix时出现的问题

在搞乱PHP之前,你应该只检查图像是否正常,例如添加.png扩展名,将其放在可见文件夹中(在Web服务器中)并浏览它。