. * */ namespace SP; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Class ImageUtil para la manipulación de imágenes * * @package SP */ class ImageUtil { /** * Convertir un texto a imagen * * @param $text string El texto a convertir * @return bool|string */ public static function convertText($text) { if(!function_exists('imagepng')){ return false; } $im = imagecreatetruecolor(strlen($text) * 20, 30); // Colores de la imagen $bgColor = imagecolorallocate($im, 255, 255, 255); // $shadowColor = imagecolorallocate($im, 128, 128, 128); $fgColor = imagecolorallocate($im, 128, 128, 128); imagefilledrectangle($im, 0, 0, strlen($text) * 20, 29, $bgColor); // Ruta de la fuente $font = Init::$SERVERROOT . '/imgs/NotoSansUI-Regular.ttf'; // Sombra // imagettftext($im, 14, 0, 13, 23, $shadowColor, $font, $text); // Crear el texto imagettftext($im, 12, 0, 10, 20, $fgColor, $font, $text); // Devolver la imagen ob_start(); imagepng($im); $image = ob_get_contents(); ob_end_clean(); imagedestroy($im); return base64_encode($image); } /** * Crear miniatura de una imagen * * @param $image string La imagen a redimensionar * @return bool|string */ public static function createThumbnail(&$image) { if(!function_exists('imagepng') || !function_exists('imagecreatefromjpeg') || !function_exists('imagecreatefrompng') ){ return false; } $im = imagecreatefromstring($image); $width = imagesx($im); $height = imagesy($im); // Calcular el tamaño de la miniatura $new_width = 48; $new_height = floor( $height * ( $new_width / $width ) ); // Crear nueva imagen $imTmp = imagecreatetruecolor($new_width, $new_height ); // Redimensionar la imagen imagecopyresized( $imTmp, $im, 0, 0, 0, 0, $new_width, $new_height, $width, $height ); // Devolver la imagen ob_start(); imagepng($imTmp); $thumbnail = ob_get_contents(); ob_end_clean(); imagedestroy($imTmp); imagedestroy($im); return base64_encode($thumbnail); } }