所以我试图创造一个指南针来显示风向。
Function rotate($angle) {
$original = imagecreatefrompng("img/Arrow.png");
$compass = imagerotate($original, $angle, 0);
return $compass;
}
它将使用我正在回响的html显示。变量角正在从数据库中传递。php脚本上的html如下所示:
<img src='".rotate($row['wind_dir'])."'/>
图像永远不会显示,而且浏览器显然不知道它在哪里。
当我在浏览器中查看html时,上面的行显示为
<img src="Resource id #4"/>
当我点击它时,它会导航到404。
我做错什么了?我是不是忘了图像旋转函数中的一条线?
编辑:尝试了下面的一些反应,我得到了一个图像,但它只显示为一个黑匣子!
EDIT2:
经过大量的修改之后,我们所需要的只是imagerotate()
的第三个值到-1,如下所示:
$original = imagecreatefrompng("img/goog.png");
$compass = imagerotate($original, $angle, -1);
imagealphablending($compass, true);
imagesavealpha($compass, true);
header('Content-Type: image/png');
imagepng($compass);
imagedestroy($compass);
发布于 2014-02-02 06:33:23
您必须执行函数并发送标头:尝试如下所示,假设我们的php文件名为rotate.php:
rotate.php
function rotate($angle) {
$original = imagecreatefrompng("test.png");
$compass = imagerotate($original, $angle, 0);
header('Content-Type: image/png');
imagepng($compass);
imagedestroy($compass);
}
if(isset($_GET['angle'])){
rotate($_GET['angle']);
}
在您的html中,您可以将THen资源即您的php文件调用为:
<img src="url_to_rotate.php?angle=90" />
还记得在执行GET输入之前对其进行清理。
发布于 2014-02-02 06:27:59
我发表了一篇关于使用CSS或JS轮转的评论,但从那以后,我有了一个更好的主意。
在360个位置中的一个位置,指南针永远是Arrow.png。
使用Photoshop或PHP中的批处理过程创建360版本。每个学位一个。然后,您只需调用Arrow_120.png,例如120度。在避免CSS / JS兼容性问题的同时,您还可以消除当前动态创建图像的代码中的问题。
发布于 2014-02-02 06:28:43
显示的图像应该是图像文件。要实现这一点,您应该使用imagejpeg();
因此,基本上您应该有2个php文件:
1:使用代码和imagejpeg()创建图像文件;
<?php
$original = imagecreatefrompng("img/Arrow.png");
$compass = imagerotate($original, $_GET['angle'], 0);
header('Content-Type: image/jpeg');
imagejpeg($compass);
?>
2:显示图像的php文件。
<img src='image.php?angle=".$row['wind_dir']."'/>
如果只想要一个文件,可以执行以下操作:
<?php
$original = imagecreatefrompng("img/Arrow.png");
$compass = imagerotate($original, $_GET['angle'], 0);
ob_start();
imagepng($compass);
$stringdata = ob_get_contents();
ob_end_clean();
$imageData = base64_encode($stringdata);
$src = 'data: image/png;base64,'.$imageData;
echo '<img src="',$src,'">';
?>
https://stackoverflow.com/questions/21511642
复制