php – So geben Sie ein Bild in Base64 aus
伊谢尔伦
伊谢尔伦 2017-05-24 11:32:19
0
1
910

Das war’s, heute habe ich eine PHP-Vorlage zum Generieren von Verifizierungscodes basierend auf den Informationen im Internet geschrieben:

<?php
// 获取验证码(参数:验证码个数,验证码宽度,验证码高度)
function getCode($num = 4, $width = 100, $height = 30){
    session_start();
    $authcode='';
    // 生成验证码
    for($i=0;$i<$num;$i++){
        switch(rand(0,1))
        {
            case  0:$authcode[$i]=chr(rand(48,57));break; // 数字
            case  1:$authcode[$i]=chr(rand(65,90));break; // 大写字母
            //case  2:$authcode[$i]=chr(rand(97,122));break; // 小写字母
        }
    }
    $_SESSION["AuthCode"]=$authcode;
    $image=imagecreate($width,$height); // 赋值宽度,高度
    imagecolorallocate($image,255,255,255); // 设定图片背景颜色
    // 生成干扰像素
    for($i=0;$i<80;$i++){
        $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
        imagesetpixel($image,rand(1,$width),rand(1,$height),$dis_color);
    }
    // 打印字符到图像
    for($i=0;$i<$num;$i++){
        $char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
        imagechar($image,60,($width/$num)*$i,rand(0,5),$authcode[$i],$char_color);
    }
    
    // 将图片直接输出
    header("Content-type:image/png");
    imagepng($image);//输出图像到浏览器
    imagedestroy($image);//释放资源
}
getCode();

Aber ich möchte nicht, dass er das Bild direkt ausgibt, sondern in base64. Wie soll ich das machen? Ich habe viele Methoden ohne Erfolg ausprobiert, es sei denn, es ist notwendig:

$img_file = 'https://www.xxxxxxxxxx.com/authcode.php';
$img_info = getimagesize($img_file);
$img_src = "data:{$img_info['mime']};base64," . base64_encode(file_get_contents($img_file));
echo "<img src='{$img_src}' />";

Wie kann ich base64 direkt in getCode ausgeben?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(1)
淡淡烟草味

是否直接输出图片关键在于

  1. 关闭 header

  2. imagepng函数, 第二个参数设置图片保存位置.

然后去读取存储位置读取图片, 转换成base64.

php文档

文档下面的留言部分可能有你需要的答案

ob_start();
imagepng($image);
$image_data = ob_get_contents();
ob_end_clean();

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage