如何连接code图像资源为Base64? [英] How to encode an image resource to base64?

查看:188
本文介绍了如何连接code图像资源为Base64?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道是否有一种方法可以连接code图像到Ba​​se64如果它是一个资源
例如,如果我装使用GD的图像

  $图像= imagecreatefromjpeg(CAPTCHA / $ captcha- $ num.jpg);    //添加一些过滤器
    的ImageFilter($形象,IMG_FILTER_PIXELATE,1,TRUE);
    的ImageFilter($形象,IMG_FILTER_MEAN_REMOVAL);

如果这是我的code和而不是保存图像,并使用显示它

 < IMG SRC ='someimage.jpg'>

我想将其显示为URI数据,而无需保存它,就像

 < IMG数据='SRC =数据:图像/ JPEG; BASE64,BASE64_HERE'>

我怎么能这样做?


解决方案

  $图像= imagecreatefromjpeg(CAPTCHA / $ captcha- $ num.jpg);//添加一些过滤器
的ImageFilter($形象,IMG_FILTER_PIXELATE,1,TRUE);
的ImageFilter($形象,IMG_FILTER_MEAN_REMOVAL);ob_start(); //让我们开始输出缓冲。
    imagejpeg($图像); //这通常输出的图像,但由于ob_start()的,它不会。
    $内容= ob_get_contents(); //相反,上面的输出保存到$内容
ob_end_clean(); // END输出缓冲区。$ dataUri =数据:图像/ JPEG; BASE64。 base64_en code($内容);

I was wondering if there's a way to encode an image to a base64 if it was a resource for example if I loaded an image using GD

    $image = imagecreatefromjpeg("captcha/$captcha-$num.jpg");

    // Add some filters
    imagefilter($image, IMG_FILTER_PIXELATE, 1, true);
    imagefilter($image, IMG_FILTER_MEAN_REMOVAL);

If this was my code and instead of saving the image and displaying it using

<img src='someimage.jpg'>

I wanted to display it as a data URI without having to save it, like

<img data='src="data:image/jpeg;base64,BASE64_HERE'>

How can I do that?

解决方案

$image = imagecreatefromjpeg("captcha/$captcha-$num.jpg");

// Add some filters
imagefilter($image, IMG_FILTER_PIXELATE, 1, true);
imagefilter($image, IMG_FILTER_MEAN_REMOVAL);

ob_start(); // Let's start output buffering.
    imagejpeg($image); //This will normally output the image, but because of ob_start(), it won't.
    $contents = ob_get_contents(); //Instead, output above is saved to $contents
ob_end_clean(); //End the output buffer.

$dataUri = "data:image/jpeg;base64," . base64_encode($contents);

这篇关于如何连接code图像资源为Base64?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆