1

我有存储图像的二进制文件,我尝试获取此图像,但仅显示黑色图像,我的代码或二进制文件可能有什么问题。

<?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

4

1 回答 1

3

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

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

于 2013-04-11T14:06:17.453 回答