Posted in

Escribir en una imagen con PHP tiempo restante

Para escribir en ella podemos partir de una imagen de base. En el siguiente ejemplo usaremos una imagen en formato png que debe mostrar como texto un tiempo determinado mostrado con el formato hh:mm:ss que será el que faltarían para un determinado día.

oheader('Content-Type: image/png');
ofunction calcula_tiempo($end_time) {
o$total_seconds = strtotime($end_time) - strtotime("now");
o$horas = floor ( $total_seconds / 3600 );
o$minutes = ( ( $total_seconds / 60 ) % 60 );
o$seconds = ( $total_seconds % 60 );
o$time['horas'] = str_pad( $horas, 2, "0", STR_PAD_LEFT ) . "h";
o$time['minutes'] = str_pad( $minutes, 2, "0", STR_PAD_LEFT ) . "m";
o$time['seconds'] = str_pad( $seconds, 2, "0", STR_PAD_LEFT ) . "s";
oreturn implode( ':', $time);
o}
o$finalitza = "20 October 2013";
o$cadena = calcula_tiempo($finalitza);
o$im = imagecreatefrompng("imatges/count.png");
o$color = imagecolorallocate($im, 0, 0, 0); // color
o$px = (imagesx($im) - 7.5 * strlen($cadena)) / 2;
oimagestring($im, 5, $px, 9, $cadena, $color);
oimagepng($im);
oimagedestroy($im);
o
oreadfile('imatges/count.png');

Para la variable finaliza podemos usar los siguientes formatos:

strtotime("now")
strtotime("10 September 2000")
strtotime("+1 day")
strtotime("+1 week")
strtotime("+1 week 2 days 4 hours 2 seconds")
strtotime("next Thursday")
strtotime("last Monday")

Podríamos mostrar esta imagen en un html de la siguiente forma:

<img src="http://rutaalarchivo.com/ruta/nombre archivo">

El mismo ejemplo que el anterior per en este caso se coge una fuente ttf subida a nuestro servidor y así tenemos la posibilidad de que el tamaño de fuente sea el que queramos (anterior ejemplo tiene límite de 5 que corresponde a unos 12px)

header('Content-Type: image/png');
ofunction calcula_tiempo($end_time) {
o$total_seconds = strtotime($end_time) - strtotime("now");
o$dias = floor ( $total_seconds / 86400 );
o$horas = floor ( $total_seconds / 3600 ) % 24;
o$minutes = ( ( $total_seconds / 60 ) % 60 );
o//$seconds = ( $total_seconds % 60 );
o$time['dias'] = str_pad( $dias, 2, "0", STR_PAD_LEFT );
o$time['horas'] = str_pad( $horas, 2, "0", STR_PAD_LEFT );
o$time['minutes'] = str_pad( $minutes, 2, "0", STR_PAD_LEFT );
oreturn implode( ' : ', $time);
o}
o$finalitza = "5 November 2013";
o$cadena = calcula_tiempo($finalitza);
o$im = imagecreatefrompng("imatges/count.png");
o$color = imagecolorallocate($im, 255, 56, 161); // color
o$font = 'arial.ttf';
oimagettftext($im, 25, 0, 769, 142, $color, $font, $cadena);
oimagepng($im);
oimagedestroy($im);
o
oreadfile('imatges/count.png');

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.