php - Bagaimana untuk mengeluarkan imej dalam base64
伊谢尔伦
伊谢尔伦 2017-05-24 11:32:19
0
1
902

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?

伊谢尔伦
伊谢尔伦

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

membalas semua(1)
淡淡烟草味

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan