Konwertuj wyjście GD Na base64
Cóż, moje pytanie jest bardzo proste, chcę tylko przekonwertować wyjście imagepng
/ imagejpg na base64, jak to zrobić ? prawidłowy sposób jest z przechwytywania bufora wyjściowego ? dzięki.
22
Author: Filip Roséen - refp, 2011-12-18
2 answers
imagejpeg
/imagepng
nie zwraca żadnych danych, zapisuje dane obrazu bezpośrednio do strumienia wyjściowego (lub do pliku).
Jeśli chcesz przechwycić te dane zakodowane jako base64 najprostszą metodą jest użycie funkcji sterowania wyjściowego PHPS , a następnie użycie base64_encode
na $image_data
.
ob_start ();
imagejpeg ($img);
$image_data = ob_get_contents ();
ob_end_clean ();
$image_data_base64 = base64_encode ($image_data);
52
Author: Filip Roséen - refp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-08 22:33:09
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-08 22:33:09
Najczęstszym przypadkiem użycia dla zakodowanych obrazów base64 jest wyjście HTML. Chciałbym zaproponować bardziej kompletne rozwiązanie tej sprawy. Dodałem również możliwość przełączania formatów wyjściowych obrazów.
// Example
$gdImg = imagecreate( 100, 100 );
imagecolorallocate( $gdImg, 0, 0, 0 );
echo gdImgToHTML( $gdImg );
imagedestroy( $gdImg );
// Create an HTML Img Tag with Base64 Image Data
function gdImgToHTML( $gdImg, $format='jpg' ) {
// Validate Format
if( in_array( $format, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
ob_start();
if( $format == 'jpg' || $format == 'jpeg' ) {
imagejpeg( $gdImg );
} elseif( $format == 'png' ) {
imagepng( $gdImg );
} elseif( $format == 'gif' ) {
imagegif( $gdImg );
}
$data = ob_get_contents();
ob_end_clean();
// Check for gd errors / buffer errors
if( !empty( $data ) ) {
$data = base64_encode( $data );
// Check for base64 errors
if ( $data !== false ) {
// Success
return "<img src='data:image/$format;base64,$data'>";
}
}
}
// Failure
return '<img>';
}
4
Author: Lachmanski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-05 11:56:52
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-05 11:56:52