2012-02-29 88 views
2

我很难与php头,我试图在我的浏览器中创建任何形式的图像,而不保存在一个文件中,但不管我做什么,我可以让它工作。php头,内容类型PNG不工作

因此,举例来说,如果我用这个基本的例子,从PHP手册:

$im = imagecreate(100, 100); 

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

imagepng($im); 
imagedestroy($im); 

这将设置正确的头,甚至输出图标,当找不到图像u得到。

而且我用xampp它启用了GD,这里是我的phpinfo GD部分:

GD Support enabled 
GD Version bundled (2.0.34 compatible) 
FreeType Support enabled 
FreeType Linkage with freetype 
FreeType Version 2.4.3 
GIF Read Support enabled 
GIF Create Support enabled 
JPEG Support enabled 
libJPEG Version 6b 
PNG Support enabled 
libPNG Version 1.2.46 
WBMP Support enabled 
XBM Support enabled 

是我的代码是错误的或者我需要配置什么?

回答

2

你不仅要创造的形象,而且填补它的一些方式:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

$im = imagecreate(100, 100) or die("Cannot Initialize new GD image stream"); 
$background_color = imagecolorallocate($im, 0, 0, 0); 

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

imagepng($im); 
imagedestroy($im); 
+0

仍然无法正常工作,我试着用firefox来看它,这就是我得到的结果:'图像“http:// localhost/test /”无法显示,因为它包含错误。 – Linas 2012-02-29 14:36:22

+0

双重检查它。 : - 尝试更新的代码(在die失败的情况下用'die'来初始化图像)以确保GD工作正常。 – 2012-02-29 14:50:25

+0

问题是我在<?php标记之前有空的空间,这弄乱了我的图像:)反正thatnks的帮助 – Linas 2012-02-29 14:57:04

2

PHP可能是输出错误信息,从而搞乱了的二进制图像数据。出于这个原因,我总是在使用图像脚本时禁用display_errors并在PHP配置中启用log_errors;这样你就可以看到任何错误而不需要搞乱输出。如果您确定不存在任何PHP错误,请尝试将完整的脚本输出转储到文件中(脚本的开头为ob_start();,最后为file_put_contents("outfile", ob_get_clean());),然后使用十六进制编辑器分析该文件,看看有什么搞糟PNG 。

+0

谢谢,这个信息将帮助我在未来 – Linas 2012-02-29 14:57:30