我试图将合并后的图像从php传递到html meta标记(如果您想知道,则为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%是否可以将原始图像完全传递到meta标签的content属性中,但是我认为应该有一种方法可以做到这一点,而且我还认为这是导致问题的原因图片无法显示。如果没有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 meta标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39189043/