php - 如何将 php 生成的图像传递到 html 元标记中

标签 php html meta-tags php-gd

我试图将合并后的图像从 php 传递到 html 元标记中(如果您想知道,则用于 twitter 摘要卡),但图像数据未被传递。 当我运行这段代码时,我没有收到来自 html 或 php 的错误:

PHP

$dest = imagecreatefromjpeg('http://www.website.com/Some-images/'.$postID.'.jpg'); 
$src = imagecreatefromjpeg('http://www.website.com/media/dog.jpg');



imagealphablending($dest, false);
imagesavealpha($dest, true);


imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); 

HTML

<meta name="twitter:image" content="'.$dest.'">

我不是 100% 肯定你甚至可以将原始图像传递到元标记的内容属性中,但我认为应该有一种方法可以做到这一点,我也认为这是是什么导致图像不显示。如果无法使用 php 解决方案,我愿意接受 html/css 解决方案。我已经坚持了一段时间,因此非常感谢您提出的任何建议和意见。谢谢!

编辑

我应该补充一点,这是一个 php 脚本,因此 html 是这样创建的:

$html = '

<html>
<head>

<meta name="twitter:image" content="'.$dest.'">

</head>
<body>

</body>
</html>

';

echo $html;

最佳答案

这行不通。 ' imagecopymerge ' 返回一个图像资源,必须将其作为图像发送到浏览器或将文件保存到服务器硬盘上带有 ' imagejpeg 的文件'.如果它直接发送到浏览器(第一个选项),则必须在 HTML 中引用此 PHP 文件。

基本上,在您的 HTML 中,使用您的 postid 参数引用 PHP 文件:

<meta name="twitter:image" content="image.php?postid='.$postID.'">

在文件 image.php 中创建您的文件并输出它(您还应该在此处为 $_GET['postid'] 添加一些验证代码):

<?php
$dest = imagecreatefromjpeg('http://www.website.com/Some-images/'.$_GET['postid'].'.jpg'); 
$src = imagecreatefromjpeg('http://www.website.com/media/dog.jpg');

imagealphablending($dest, false);
imagesavealpha($dest, true);

imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); 

header('Content-Type: image/jpg');
imagejpeg($dest);
?>

关于php - 如何将 php 生成的图像传递到 html 元标记中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39189043/

相关文章:

php - 有没有办法让codeIgniter输出html而不是xhtml?

Javascript 正在删除要删除的行上方的行

android - 如何启用放大元标记?

php var到年和月

PHP 执行 shell 命令并返回完整输出

javascript - 在滚动时修改高度时侧边栏无法控制地跳转

javascript - JavaScript 中的按钮单击可在表中添加一行

facebook - 如何将查询参数添加到 Facebook og :url meta tag without impacting ranking of my page?

WordPress - 如何删除元生成器标签?

php - Symfony 缺少 bootstrap.php.cache