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

how to pass php generated image into html meta tag

我正在尝试将合并后的图像从 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;

如果要将 PHP 变量的内容放入某些 HTML 中,则需要将变量 echo 放入 HTML 属性中,方法是将其放入PHP 代码块。

这样应该可以达到目的:

<meta name="twitter:image" content="<?php echo $dest; ?>">

这行不通。 'imagecopymerge' returns an image resource, which has to be sent to the browser as an image or saved to the server hard disk a file with 'imagejpeg'。如果它直接发送到浏览器(第一个选项),则必须在 HTML.

中引用此 PHP 文件

所以基本上,在您的 HTML 中,引用一个 PHP 文件,您的 postid 参数:

<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);
?>

你可以使用 base64

$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); 

$img = base64_encode($dest);

然后在标签中使用该字符串

<meta name="twitter:image" content="data:image/png;base64,<?php echo $img; ?>">