搜尋

首頁  >  問答  >  主體

在PHP中,如何實現將產生驗證碼圖片 編碼為base64獲得?

PHP伺服器 安卓客戶端

我需要將伺服器產生的驗證碼圖片 編碼為base64

注意:不是產生顯示出圖片,而且直接將產生的圖片資源編碼為base64

so how to do? ? ? ? ? ? ?

#
阿神阿神2780 天前1671

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-05-27 17:44:38

    主要函數:

    function base64EncodeImage ($image_file) {
        $base64_image = '';
        $image_info = getimagesize($image_file);
        $image_data = fread(fopen($image_file, 'r'), filesize($image_file));
        $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
        return $base64_image;
    }

    demo:

    <?php
    $img = 'icon.jpg';
    $base64_img = base64EncodeImage($img);
     
    echo '<img src="' . $base64_img . '" />';
    echo '<img src="' . $img . '" />';
     
    function base64EncodeImage ($image_file) {
        $base64_image = '';
        $image_info = getimagesize($image_file);
        $image_data = fread(fopen($image_file, 'r'), filesize($image_file));
        $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
        return $base64_image;
    }
    ?>

    實作:

    =============== 補充 =================

    GD to base64:

    ob_start (); 
    imagejpeg ($img);
    $image_data = ob_get_contents (); 
    ob_end_clean (); 

    估計是利用 ob_get_contents 取得緩衝區資料。
    參考原文: 原文連結

    PS:
    請善用Google百度。

    回覆
    0
  • 为情所困

    为情所困2017-05-27 17:44:38

    如果是產生的驗證碼保存了伺服器端就用file_get_contents取得圖片再將結果base64encode後輸出即可。

    回覆
    0
  • 取消回覆