Bueno, mi pregunta es muy simple, solo quiero convertir la salida de imagepng
/imagejpg a base64, ¿cómo puedo hacer esto? la forma correcta es con la captura de buffer de salida? Gracias.Convertir la salida de GD a base64
21
A
Respuesta
50
imagejpeg
/imagepng
no devuelve ningún dato, ellos escriben los datos de la imagen directamente en el flujo de salida (o en un archivo).
Si desea capturar esta información codificada como base64, el método más fácil es usar PHPs Output Control Functions, y luego usar base64_encode
en el $image_data
.
ob_start();
imagejpeg ($img);
$image_data = ob_get_contents();
ob_end_clean();
$image_data_base64 = base64_encode ($image_data);
4
El caso de uso más común para las imágenes codificadas en base64 es la salida HTML. Me gustaría ofrecer una solución más completa para este caso. También he agregado la capacidad de cambiar los formatos de imagen de salida.
// 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>';
}
Cuestiones relacionadas
- 1. Perl convertir la imagen a base64
- 2. cómo convertir a hexadecimal a base64
- 3. convertir cadena base64 a imagen con javascript
- 4. Habilitar/instalar la extensión GD? --without-gd
- 5. Convertir una imagen a base64 y viceversa
- 6. ¿Cómo convertir una imagen a codificación base64?
- 7. Convertir matriz de bytes base64 a una imagen
- 8. Cómo crear imágenes GD a partir de jpeg codificado en base64?
- 9. Convertir documento de Word a cadena base64 C#
- 10. Cómo convertir el mapa de bits a una cadena Base64?
- 11. Conversión de NSData a base64
- 12. Convertir los hashes SHA1 base64'd a Hex hashes
- 13. Cómo convertir uint8 Array a base64 Cadena codificada?
- 14. Cómo convertir byte [] a base64 (y viceversa) en J2ME?
- 15. cómo convertir una imagen en cadena base64
- 16. php GD agregar relleno a la imagen
- 17. Convertir base64 Cadena en imagen en Android
- 18. PHP: convertir la salida de curl_exec a UTF8
- 19. Conversión de archivo binario a cadena Base64
- 20. UIImage a base64 Codificación de cadena
- 21. NSImage a Base64
- 22. PHP GD colores de la paleta
- 23. Imágenes de Base64 a gmail
- 24. ¿Cómo convertir una imagen en una cadena de Base64?
- 25. Javascript convertir GUID en formato de cadena en Base64
- 26. Convertir archivos de mapa de bits en JPEG utilizando la biblioteca GD en PHP
- 27. ¿Cómo puedo convertir HTML codificado en BASE64 a GIF usando ColdFusion?
- 28. Código de Android para convertir cadena de base64 a mapa de bits
- 29. Javascript: objeto Blob a base64
- 30. ¿La biblioteca de GD usa mucha memoria?
¿Necesitamos llamar 'imagedestroy ($ gdImg)' o 'ob_end_clean()' se ocupará de eso por nosotros? – user3442612
@ user3442612 Es una buena práctica destruir manualmente las imágenes después de su uso. No creo que sea pertinente para esta muestra corta, pero la agregaré por el bien de hacer las cosas "de la manera correcta". Gracias. – Lachmanski