PHP - 从字符串创建 base64 编码图像

PHP - Create base64 encoded image from String

我有一个包含字符串的数组,我想以图像格式显示它们(每个图像包含一个字符串)。我需要以格式显示图像:<img src="data:image/png;base64,...<data>..."/>,HTML 页面中的所有图像。如何从字符串创建 base64 编码的图像?

我试图从 google 搜索,但有 "create base64 encoded image from image file" 的教程。

示例:如果我的文本是“600153957”,输出将是:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAOCAIAAAD42Ti+AAADv0lEQVRIidVWT0gqaxQ/14ZBRYaMSSLEhEKshYREVAwuQkTETRLiooVEtIgWLUQiwqSFyxZuAhmmCJGQFuJCypW4CJEIEZIWFQViIGVCMflMOG/xdeeaXeXxFu9xf6vD7zu/7/yZ7xzmByLCnwnZ/53Av8eX1A8ODtRq9fPz838WfmFhoa+vb3Z29urqqpvPx8fHXz/x5QB/olKpMAyzsrKCbUgkEkql0m63p1Kpf8JzHHd0dISIzWbTbDarVCqZTLa2tvb09OTxeDQaDUVRUgie5wEgEok4HA69Xt9sNr8LEZFhGCnb+fl5Kdav1JeXlxmGqVarEiOKokajsdvt8Xicoqh4PN6bj0ajABAMBhGxXq/TNK1SqRwORzgcbjabbrc7Go0mEgkAODw8RMSZmZnJyUlEzOfzAHB6evpdiIjX19e5XC4WiwGA0+n8FUtqOU3Tfr+/vYWCIMhksnK5jIhWq9Vqtfbm3W63lHo4HFYqlbVaDb9icXERAARBQES5XL66uoqIjUYDAPb29noIw+GwVPNnLGKFQiEAkMlkJpOJVI+IDodjamqK2D6fj2XZ3jwiSqmbTKaJiYm7uzvp6O3tjdRmNptFUURElmW3t7clYSgU+q2QwGazURTVXtLnmCaTSZZlU6mU0+l0uVwPDw8AcHFxYTKZiANFUfV6ndjd+HbQNF0qlQwGw87ODgA8Pj4ajUbywARBUCgUAOD1ekul0svLy/7+PgDo9frvQoLX19dMJmOxWNRqdeeYqlQqMj3k25FHRlHU5uYmcfB6vQzDELsb3951RKzValtbWwCQSqVubm4AQC6XA4BWqyUTJYqizWaTSpXGrF1ImJOTE+lFdXa91WoNDQ0BAGmhKIoA0N/f32q1iMPl5aXRaCR2N74DarXa7/cDQKFQGB0dvb+/f39/LxQK5XKZDLRCoTg7O8vn8wMDAx6PZ3Bw8LuQMOl0GgDsdnv7/Z+pj42NkXTJBpiengaAubm5YrEIALe3t8ViUVJ2478jGAwCAMdxADAyMgIAyWQSAEibCHiebzQau7u73YQAkMvldDrd+Pj4l9ulMTUYDLFYjGVZjuMImc1maZoWBMFiscjlcrJSevDtDyabzS4tLQEA2VrVajWdThPGYrGQFY6Ix8fHABCJRKQbOoQEcrl8fX29Y3A/U2+1Wj6fj2EYjuMqlYp0zPP88PAwy7LS8u7Nu91usjRcLpdWq+V5nvCZTIZhGJ1OFwgEGo2G5B8IBDY2Ntpv6BASmM3m8/PzjtR/4B/7+/U3c4foNnBzZrIAAAAASUVORK5CYII=">

实例http://goo.gl/mYBUI。我想像这个网站一样保护我的号码。这样,扫描文本查找此号码的垃圾邮件软件将无法读取它们。

请帮帮我!抱歉我的英语不好。

检查以下代码是否对您有帮助

$decodeString=base64_decode($imageString);
$imageCreated=imagecreatefromstring($decodeString);
ob_start();
imagepng($imageCreated);
$imgPng = ob_get_clean();
$imgPath = "data:image/png;base64," . base64_encode($imgPng);

并且 $imgPath 可以用作 .

的 src

这只是一个粗略的例子,说明如何做你想做的事,你需要使用你想要的任何数据用 php 生成图像,然后将文件内容作为字符串

如果您按原样运行此代码,您就会明白这一点。

<?php

    function b64img( $str, $fs=10, $w=250, $h=200, $b=array( 'r'=>255, 'g'=>255, 'b'=>255 ), $t=array('r'=>0, 'g'=>0, 'b'=>0) ){
        $tmp=tempnam( sys_get_temp_dir(), 'img' );

        $image = imagecreate( $w, $h );
        $bck = imagecolorallocate( $image, $b['r'], $b['g'], $b['b'] );
        $txt = imagecolorallocate( $image, $t['r'], $t['g'], $t['b'] );

        imagestring( $image, $fs, 0, 0, $str, $txt );
        imagepng( $image, $tmp );
        imagedestroy( $image );

        $data=base64_encode( file_get_contents( $tmp ) );
        @unlink( $tmp );
        return $data;
    }


    $img=b64img( 'Some text to make into base64 image', 6, 400, 100 );
    echo "<img src='data:image/png;base64, {$img}' />";

    $img=b64img( 'Another image', 10, 200, 200, array('r'=>0, 'g'=>255, 'b'=>0), array('r'=>255, 'g'=>0, 'b'=>0) );
    echo "<img src='data:image/png;base64, {$img}' />";
?>