How to encode an image resource to base64?

前端 未结 2 1341
一向
一向 2020-12-10 05:34

I was wondering if there\'s a way to encode an image to a base64 if it was a resource for example if I loaded an image using GD

    $image = imagecreatefromj         


        
相关标签:
2条回答
  • 2020-12-10 05:51
    $image = imagecreatefromjpeg("captcha/$captcha-$num.jpg");
    
    // Add some filters
    imagefilter($image, IMG_FILTER_PIXELATE, 1, true);
    imagefilter($image, IMG_FILTER_MEAN_REMOVAL);
    
    ob_start(); // Let's start output buffering.
        imagejpeg($image); //This will normally output the image, but because of ob_start(), it won't.
        $contents = ob_get_contents(); //Instead, output above is saved to $contents
    ob_end_clean(); //End the output buffer.
    
    $dataUri = "data:image/jpeg;base64," . base64_encode($contents);
    
    0 讨论(0)
  • 2020-12-10 05:58

    I wrote a function for this. It also allows you change the output image format on the fly.

    // Example
    $im = imagecreate( 100, 100 );
    imagecolorallocate( $im, 0, 0, 0 );
    echo gdImgToHTML($im);
    
    // Creates an HTML Img Tag with Base64 Image Data
    function gdImgToHTML( $gdImg, $format='jpeg' ) {
        ob_start();
    
        if( $format == 'jpeg'){
            imagejpeg( $gdImg );
        }
        else
        if( $format == 'png' ){
            imagepng( $gdImg );
        }
        else
        if( $format == 'gif' )
        {
            imagegif( $gdImg );
        }
    
        $image_data = ob_get_contents();
        ob_end_clean();
    
        return "<img src='data:image/$format;base64," . base64_encode( $image_data ) . "'>";
    }
    
    0 讨论(0)
提交回复
热议问题