首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >旋转的图像不会在php中显示。

旋转的图像不会在php中显示。
EN

Stack Overflow用户
提问于 2014-02-02 14:21:12
回答 3查看 1.1K关注 0票数 0

所以我试图创造一个指南针来显示风向。

代码语言:javascript
代码运行次数:0
运行
复制
 Function rotate($angle) {
     $original = imagecreatefrompng("img/Arrow.png");
     $compass = imagerotate($original, $angle, 0);
     return $compass;
 }

它将使用我正在回响的html显示。变量角正在从数据库中传递。php脚本上的html如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
<img src='".rotate($row['wind_dir'])."'/>

图像永远不会显示,而且浏览器显然不知道它在哪里。

当我在浏览器中查看html时,上面的行显示为

代码语言:javascript
代码运行次数:0
运行
复制
<img src="Resource id #4"/>

当我点击它时,它会导航到404。

我做错什么了?我是不是忘了图像旋转函数中的一条线?

编辑:尝试了下面的一些反应,我得到了一个图像,但它只显示为一个黑匣子!

EDIT2:

经过大量的修改之后,我们所需要的只是imagerotate()的第三个值到-1,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
$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);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-02 14:33:23

您必须执行函数并发送标头:尝试如下所示,假设我们的php文件名为rotate.php:

rotate.php

代码语言:javascript
代码运行次数:0
运行
复制
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文件调用为:

代码语言:javascript
代码运行次数:0
运行
复制
<img src="url_to_rotate.php?angle=90" />

还记得在执行GET输入之前对其进行清理。

票数 1
EN

Stack Overflow用户

发布于 2014-02-02 14:27:59

我发表了一篇关于使用CSS或JS轮转的评论,但从那以后,我有了一个更好的主意。

在360个位置中的一个位置,指南针永远是Arrow.png。

使用Photoshop或PHP中的批处理过程创建360版本。每个学位一个。然后,您只需调用Arrow_120.png,例如120度。在避免CSS / JS兼容性问题的同时,您还可以消除当前动态创建图像的代码中的问题。

票数 2
EN

Stack Overflow用户

发布于 2014-02-02 14:28:43

显示的图像应该是图像文件。要实现这一点,您应该使用imagejpeg();

因此,基本上您应该有2个php文件:

1:使用代码和imagejpeg()创建图像文件;

代码语言:javascript
代码运行次数:0
运行
复制
<?php

$original = imagecreatefrompng("img/Arrow.png");
$compass = imagerotate($original, $_GET['angle'], 0);
header('Content-Type: image/jpeg');
imagejpeg($compass);
?>

2:显示图像的php文件。

代码语言:javascript
代码运行次数:0
运行
复制
<img src='image.php?angle=".$row['wind_dir']."'/>

如果只想要一个文件,可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
<?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,'">';
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21511642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档