我有二进制文件存储图像,我尝试获取此图像,但只显示黑色图像,我的代码或二进制文件可能出错。
<?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
答案 0 :(得分:3)
你的PNG图片已损坏,它有一个\n
字符而不是\r\n
,(byte position 5)通常是FTP将文本模式下的二进制图像从Windows传输到Unix时出现的问题
在搞乱PHP之前,你应该只检查图像是否正常,例如添加.png扩展名,将其放在可见文件夹中(在Web服务器中)并浏览它。