$valor){ $valor_rgb =($aumento_color * $contador++)-1; $paleta_caracteres[$indice]=imagecolorallocate($imagen,$valor_rgb,$valor_rgb,$valor_rgb); } //Inicialización de la variables necesaria para ir generando la imagen $coordenada_y=0; //Coordenada y de la imagen for ($i=0; $i< strlen($cadena_caracteres)-1; $i+=$contador){ //Hay que tener en cuenta que trabajamos en $ancho( coordenada_x) X $alto(coordenada_y) //Por ejemplo en una matriz 3x3 el (1,1) sería el 4 elemento $coordenada_x= $i-($ancho * $coordenada_y); //Contador para la coordenada_x $contador=0; //Indice para ir recorriendo los caracteres dentro de $cadena_caracteres $indice=$i; //sino buscamos hasta que exista un caracter diferente al anterior while($cadena_caracteres[$indice]==$cadena_caracteres[$indice+1]){ $contador++; $indice++; } //Buscamos el salto de linea if($cadena_caracteres[$indice]==\"\\r\" || $cadena_caracteres[$indice]==\"\\n\"){ //Pasamos a la siguiente linea, es decir a la siguiente fila de la matriz $coordenada_y++; //Pasamos los caracteres \"\\r\" y \"\\n\" $contador++; } //recogemos el color del caracter if($cadena_caracteres[$indice]!=\"\\r\" && $cadena_caracteres[$indice]!=\"\\n\"){ $color=$paleta_caracteres[$cadena_caracteres[$indice]]; if($indice > $i){ //dibujamos una línea si hay varios caracteres iguales imageline($imagen, $coordenada_x, $coordenada_y, ($coordenada_x + $contador), $coordenada_y, $color); }else{ //dibujamos un pixel si hay un caracter diferente detras de otro imagesetpixel($imagen, $coordenada_x, $coordenada_y, $color); } //Pasamos al siguiente caracter } $contador++; } //Generamos el tiempo en generar la imagen $color_texto=imagecolorallocate($imagen,0,0,200); $tiempo=microtime_float()-$inicio.\' seg\'; imagestring($imagen, 1, 10, $coordenada_y-10,$tiempo,$color_texto); imagepng($imagen); imagedestroy($imagen); ?> $valor){ $valor_rgb = $aumento_color * $contador++; $paleta_caracteres[$indice]=imagecolorallocate($imagen,$valor_rgb,$valor_rgb,$valor_rgb); } /* Longitud de la cadena de caracteres, el -1 es debido a que compararmos el caracter n con el n+1 y asi evitamos sobreflujo en el array */ $longitud=strlen($cadena_caracteres)-1; //Coordenada y de la imagen que comienza en 0 $coordenada_y=0; for ($i=0; $i< $longitud; $i+=$contador){ //Limite de la línea $limite=$ancho-1; /* Averiguamos la coordenada x en función del ancho de linea y de la línea en la que estemos Asi en una matriz de 3x3 con un total de 9 elementos e inicio en el (0,0) el elemento 4 sería en coordenadas el (1,1): Coordenada x= 4 - 3 * 1 */ $total=$coordenada_x= $i-($ancho * $coordenada_y); //Contador para la coordenada_x y para aumentar el bucle for $contador=0; //Indice para ir recorriendo los caracteres dentro de $cadena_caracteres $indice=$i; //sino buscamos hasta que exista un caracter diferente al anterior while( ($cadena_caracteres[$indice]==$cadena_caracteres[$indice+1]) && ($total < $limite-1) ){ $contador++; $indice++; $total++; } //recogemos el color del caracter $color=$paleta_caracteres[$cadena_caracteres[$i]]; if($indice > $i){ //dibujamos una línea si hay varios caracteres iguales imageline($imagen, $coordenada_x, $coordenada_y, $total, $coordenada_y, $color); }else{ //dibujamos un pixel si hay un caracter diferente detras de otro imagesetpixel($imagen, $coordenada_x, $coordenada_y, $color); } if($total == $limite){ //Pasamos a la siguiente linea, es decir a la siguiente fila de la matriz $coordenada_y++; } //Pasamos al siguiente caracter $contador++; } //Generamos el tiempo en generar la imagen $color_texto=imagecolorallocate($imagen,0,0,200); $tiempo=microtime_float()-$inicio.\' seg\'; imagestring($imagen, 1, 10, $coordenada_y-10,$tiempo,$color_texto); imagepng($imagen); imagedestroy($imagen); ?> $valor){ $valor_rgb = $aumento_color * $contador++; $paleta_caracteres[$indice]=imagecolorallocate($imagen,$valor_rgb,$valor_rgb,$valor_rgb); } //Coordenada y de la imagen que comienza en 0 $coordenada_y=0; /* Longitud de la cadena de caracteres, el -1 es debido a que compararmos el caracter n con el n+1 y asi evitamos sobreflujo en el array */ $longitud=strlen($cadena_caracteres)-1; //Acumulador de los anchos de cada línea $ancho_total=0; for ($i=0; $i< $longitud; $i+=$contador){ //Limite de la línea $limite=$ancho[$coordenada_y]-1; //Averiguamos la coordenada x en función del nº de caracteres y el sumatorio de todos los anchos $total=$coordenada_x= $i-$ancho_total; //Contador para la coordenada_x y para aumentar el bucle for $contador=0; //Indice para ir recorriendo los caracteres dentro de $cadena_caracteres $indice=$i; //sino buscamos hasta que exista un caracter diferente al anterior while( ($cadena_caracteres[$indice]==$cadena_caracteres[$indice+1]) && ($total < $limite-1) ){ $contador++; $indice++; $total++; } //recogemos el color del caracter $color=$paleta_caracteres[$cadena_caracteres[$i]]; if($indice > $i){ //dibujamos una línea si hay varios caracteres iguales imageline($imagen, $coordenada_x, $coordenada_y, ($coordenada_x + $contador), $coordenada_y, $color); }else{ //dibujamos un pixel si hay un caracter diferente detras de otro imagesetpixel($imagen, $coordenada_x, $coordenada_y, $color); } if($total == $limite){ //Acumulamos el ancho para averiguar la coordenada x en función del nº de caracteres $ancho_total+=$ancho[$coordenada_y]; //Pasamos a la siguiente linea, es decir a la siguiente fila de la matriz $coordenada_y++; } //Pasamos al siguiente caracter $contador++; } //Generamos el tiempo en generar la imagen $color_texto=imagecolorallocate($imagen,0,0,200); $tiempo=microtime_float()-$inicio.\' seg\'; imagestring($imagen, 1, 10, $coordenada_y-10,$tiempo,$color_texto); imagepng($imagen); imagedestroy($imagen); ?>