cari

Rumah  >  Soal Jawab  >  teks badan

php - Bagaimana untuk mengeluarkan imej dalam base64

Itu sahaja, hari ini saya menulis templat PHP untuk menjana kod pengesahan berdasarkan maklumat di Internet:

<?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();

Tetapi saya tidak mahu dia mengeluarkan imej secara langsung, tetapi mengeluarkan imej dalam base64 Bagaimana saya harus melakukan ini? Saya telah mencuba banyak kaedah tetapi tidak berjaya, melainkan perlu:

$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}' />";

Bagaimana saya boleh terus mengeluarkan base64 dalam getCode?

伊谢尔伦伊谢尔伦2763 hari yang lalu904

membalas semua(1)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-05-24 11:34:19

    Kunci sama ada untuk mengeluarkan gambar secara langsung ialah

    1. Tutup pengepala

    2. Fungsi
    3. imagepng, parameter kedua menetapkan lokasi penyimpanan imej.

    Kemudian baca lokasi storan untuk membaca imej dan tukarkannya kepada base64.

    dokumentasi php

    Bahagian komen di bawah dokumen mungkin mempunyai jawapan yang anda perlukan

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

    balas
    0
  • Batalbalas