繁体   English   中英

在PHP中,如何直接在我的网站上使用GD库创建的图像

[英]In PHP, how do I use the GD library created image directly on my website

我不确定我是否完全理解它的工作原理。 对于网站表单,我想生成一个随机的验证码图像,并将其与表单一起显示。 因此,理想情况下,我希望遵循以下思路:

<form action="post.php" method="post">
  ...
  <?php create_captcha(); ?>
</form>

虽然我确实有一个在PHP中创建图像资源的函数( link

function create_captcha() {
  $w = 60; $h = 30;
  $img = imagecreatetruecolor($w, $h);
  ...
  //header("Content-Type: image/jpeg");
  imagejpeg($img);
}

我不太清楚如何将图像作为HTML表单的一部分直接输出到网站上。 我怀疑我必须将其保存到临时文件captcha.jpg ,然后在网站中生成<img src="captcha.jpg" />

有没有不使用临时图像的更优雅的方法?

使用您的验证码生成文件路径作为IMG标签的来源

<img src="http://domain.com/your-captcha_generating-file-path" />

您可以执行以下操作:

function getCaptcha() {

    // Begin output buffering
    ob_start();

    // generate the captcha image in some magic way
    $w = 60; $h = 30;
    $img = imagecreatetruecolor($w, $h);
    imagejpeg($img);

    // and finally retrieve the byte stream
    $rawImageBytes = ob_get_clean();

    return "<img src='data:image/jpeg;base64," . base64_encode( $rawImageBytes ) . "' />";
}

通过在img标签中使用Base64编码的数据源,您将根本不需要存储任何临时文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM