3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Avisos

Retroceder   Foros del Web > Programación para sitios web > PHP
Respuesta
 
Herramientas Desplegado
Antiguo 13-dic-2007, 18:57   #1 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Cool APORTE: Edición de imágenes con PHPImagen

Hola amigos foreros.


Quiero presentarles una clase que diseñé, que lleva como nombre PHPImagen. Como el nombre lo sugiere, esta clase permite editar imágenes on the fly, osea genera imágenes modificadas a partir de otras preexistentes. Las cosas que permite hacer la clase son:
  • Redimensionar imágenes
  • Colorear y convertir a grises
  • Agregar marca de agua
  • Agregar marca de texto
  • Mostrar la imagen, enviarla como descargable, o guardarla en el servidor
http://phpimagen.phperu.net/

Espero sus comentarios y sugerencias...

Un saludo,

Última edición por okram; 24-sep-2009 a las 21:02 Razón: Actualizando vínculos
  Responder Citando
Antiguo 13-dic-2007, 19:31   #2 (permalink)
kaninox (Reg: septiembre-2005)
 
3.218 Mensajes
Ubicación: Chile
kaninox está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

lo esperaba gracias hombre :D
una duda con esto puedo hacer al mismo tiempo redimencionar y poner marcas de agua?
o sea la otra libreria que creaste la dejo de la lado en este caso....
__________________
Quiero mi karma heeeeeeee!!!!
  Responder Citando
Antiguo 13-dic-2007, 21:08   #3 (permalink)
eddwinpaz (Reg: noviembre-2007)
 
967 Mensajes
Ubicación: San Cristobal , Venezuela
Enviar un mensaje por MSN a eddwinpaz Enviar un mensaje por Skype™ a eddwinpaz eddwinpaz está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Exelente aporte Muchas gracias.. Okram
  Responder Citando
Antiguo 14-dic-2007, 18:44   #4 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

@kaninox, si revisas el codigo, esta clase se basa en la anterior, lo único que hice fue agregarle un par de funciones y reestructurarla. Por este último detalle es que decidí cambiarle de nombre, ya que si te fijas el modo de uso es muy diferente a la anterior. Además, en esta clase explico ampliamente el modo de uso, a diferencia de la primera.
Cita:
Iniciado por kaninox Ver Mensaje
[...]
con esto puedo hacer al mismo tiempo redimencionar y poner marcas de agua?
[...]
Bueno, que no leiste el manual ni viste los ejemplos ()? Puedes redimensionar y agregar cuantas marcas de agua desees. Suerte, espero tus comentarios

@eddwinpaz, gracias por tu comentario. Ya me contarás como te sirvió

Un saludo,

Última edición por okram; 01-sep-2008 a las 18:56 Razón: Actualizando links...
  Responder Citando
Antiguo 14-dic-2007, 20:57   #5 (permalink)
 
133 Mensajes
Ubicación: <?="www.tuky.cl";?>
Enviar un mensaje por MSN a tuky Enviar un mensaje por Skype™ a tuky tuky está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Espectacular!

Lo revisaré en cuanto tenga un rato libre!

saludos,

tuky.-
__________________
Tuky
Web Developer
  Responder Citando
Antiguo 19-dic-2007, 04:54   #6 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Muy buenas!

La verdad es que me he enviado hasta un correo para que no se me olvide descargarla y hacer unas cuantas pruebas! A mi la edicion y manipulacion de imagenes con PHP no me va nadaaaaaaaaaaaaaa jajajajajajjaa .oO(Torpeeeeee, torpeeeeeeeee pero torpe!!!)

Con lo que vea, comentaré cosas!

Muchas gracias por el aporte
  Responder Citando
Antiguo 19-dic-2007, 17:43   #7 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

@popobcn, tendrás que leerte todo el manual entero . Si hay algo que no entiendes, preguntas aquí mismo. Espero tus sugerencias

De momento, te diré que la clase tiene algunos problemas manejando archivos png e imágenes gif con transparencias. Estoy en eso para solucionarlo.

Un saludo,
  Responder Citando
Antiguo 20-dic-2007, 01:37   #8 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Cita:
Iniciado por okram Ver Mensaje
@popobcn, tendrás que leerte todo el manual entero . Si hay algo que no entiendes, preguntas aquí mismo. Espero tus sugerencias

De momento, te diré que la clase tiene algunos problemas manejando archivos png e imágenes gif con transparencias. Estoy en eso para solucionarlo.

Un saludo,

Buenas okram,

He visto por aqui ya una pregunta abierta por tu parte con referencia al tratamiento de las transparencias y rotacion de imagenes en formato gif.. .oO(No esperes que pueda aportar mucho a la solucion xD jajajajjajaa ;) Ya sabes, I'M TORPEEEE!!!!)

No he podido mirarlo aún, pero descuida... que como usuario TORPE seguroooooo que se me ocurren unos cuantos aportes ;).

Ya le pegue un respaso al FAQ / MANUAL de tu blog y la verdad es que las funciones que has añadido a esta clase simplifican casi cualquier aspecto relacionado con la subida, tratamiento y modificacion de las imagenes. De hecho, quiero mirar de aplicarlo en una página que actualmente estoy realizando en la que tengo un problema con la creacion de los thumbnails... .a ver que tal queda y funciona con tu clase.

Palabra que pasaré de nuevo por aqui ;) Descuida jajajajaja :D

Saludos!
  Responder Citando
Antiguo 20-dic-2007, 09:54   #9 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

La sección de ejemplos que incluyo en el manual incluye thumbanils creados con la clase, asi que no deberás tener problemas con eso...

Un saludo,
  Responder Citando
Antiguo 20-dic-2007, 14:24   #10 (permalink)
xcars (Reg: mayo-2005)
 
691 Mensajes
xcars está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Hola, me gusta mucho, yo he hecho ahorita unos scripts, apoyado de librerias, en el cual puedes subir una imagen, y hacerle un crop pero con el mouse, si pudieramos integrarlo con tu script, pues quedaria algo mas genial, asi que si te interesa mi ICQ es 479-451-254, msn hstanleycrow AT hotmail.com.
__________________
Mess with the best.... die like the rest
  Responder Citando
Antiguo 22-dic-2007, 11:12   #11 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

@xcars, gracias por el interés. Internamente hablé con él y pronto estaremos implementando nuevas funciones al script.

Ahora, quiero anunciarles el lanzamiento de la segunda versión BETA del script. Tiene mejoras muy significativas. La más importante de ellas es el soporte para archivos PNG y transparencias.

La url es la misma:
PHPImagen BETA RC2
Pruébenla, y me comentan

Un saludo,

Última edición por okram; 01-sep-2008 a las 18:57 Razón: Actualizando link...
  Responder Citando
Antiguo 27-dic-2007, 07:09   #12 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Hola okram!

Pues ya me he puesto a revisar el script y a pegarme de tortas con el mismo jajajajajaja xD .oO(Recordemos: TORPE a los mandos). Asi que casi mejor que exponga mi caso, paso a paso para que podamos ver donde me he liado:

1.- Estoy adaptando el script para emplearlo directamente en una galeria de fotos que he programado.
2.- Al inicio de la funcion de la subida de imagenes, he incluido la libreria de PHPImagen tal y como se especifica en el manual.

Código PHP:
include_once "PHPImagen.lib.php"
3.- En este caso en particular, a mi me interesa efectuar la llamada a la clase justo despues de efectuar la subida de la imagen, por lo que ya dispongo de una ruta establecida para tratar la imagen y poder crear los thumbnails.

Código PHP:
$nuevo_ancho 137
$nuevo_alto 90
$imgurl "/rutadelarchivo/$nombre$extension";
$imagen = new Imagen($imgurl);
$cut true
$imagen->resize($nuevo_ancho$nuevo_alto$cut); 
$imagen->doPrint(); 
Pero no funciona... Me aparece el siguiente error:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /.../htdocs/PHPImagen.lib.php on line 22

Donde he metido la pata?!

Saludos
  Responder Citando
Antiguo 27-dic-2007, 08:42   #13 (permalink)
_ssx (Reg: mayo-2003)
 
540 Mensajes
Ubicación: mX
Enviar un mensaje por MSN a _ssx Enviar un mensaje por Yahoo  a _ssx Enviar un mensaje por Skype™ a _ssx _ssx está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

al parecer estas usando PHP 4, y PHPImagen creo que esta hecha para PHP 5, si no que venga el dueño a ver que onda con su obra
__________________
oscar arzola my life online
sneaker
  Responder Citando
Antiguo 27-dic-2007, 08:47   #14 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Cita:
Iniciado por _ssx Ver Mensaje
al parecer estas usando PHP 4, y PHPImagen creo que esta hecha para PHP 5, si no que venga el dueño a ver que onda con su obra


Okram, si _ssx tiene razón... Ya TARDAS en hacer una version de PHPImagen para la version de PHP4!!!! jajajajajajajjajajaja xD ;) .oO(Obviamente, estoy de broma... pero lo digo en serio xD)

Fuera bromas, _ssx no he visto ninguna referencia o limitacion en el blog de okram que haga referencia al uso exclusivo de su clase en php5... Si es asi, la verdad es que será una lastima por que la clase pinta la mar de bien :)

ACTUALIZACION
Cita:
El script requiere PHP >=4, la librería GD y opcionalmente la librería FreeType. La mayoria de webservers trae todas estas librerías instaladas .
Extraido de la página del script... Así que tendria que funcionar en PHP4... Mmmmm

_sxx, has podido revisar el script?

Saludos
  Responder Citando
Antiguo 27-dic-2007, 09:02   #15 (permalink)
_ssx (Reg: mayo-2003)
 
540 Mensajes
Ubicación: mX
Enviar un mensaje por MSN a _ssx Enviar un mensaje por Yahoo  a _ssx Enviar un mensaje por Skype™ a _ssx _ssx está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Supongo que se equivoco en su documentación ya que segun esto.. PHP 4 no soporta modificadores de acceso como son..

Código PHP:
private
public 
ni tampoco usa constructores asi..

Código PHP:
public function __construct 
en fin deja que llegue el maestro y nos diga que pex
__________________
oscar arzola my life online
sneaker
  Responder Citando
Antiguo 28-dic-2007, 21:31   #16 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Es cierto lo que dice _ssx. Al inicio, cuando armé la documentación, la programación del objeto era compatible con PHP4. Pero luego le añadí ciertos modificadores soportados unicamente desde PHP5. Prueba quitando todos los modificadores de acceso de tipo public y private. Asi deberia funcionar.

Disculpa las molestias, y la demora en contestar. Ando muy corto de tiempo y así lo estaré unos 10 dias mas

Un saludo,
  Responder Citando
Antiguo 30-dic-2007, 14:05   #17 (permalink)
_ssx (Reg: mayo-2003)
 
540 Mensajes
Ubicación: mX
Enviar un mensaje por MSN a _ssx Enviar un mensaje por Yahoo  a _ssx Enviar un mensaje por Skype™ a _ssx _ssx está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

No maaa esta excelente, me fascina usarla.. :D jee me ha resuelto muchos problemas en algunos proyectos.. muchisimas gracias.
__________________
oscar arzola my life online
sneaker
  Responder Citando
Antiguo 02-ene-2008, 01:01   #18 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Buenas de nuevo a todos!!!

Yo tambien he estado algo liado... Cosas que traen estas fechas que hemos pasado ;) ... Intentare realizar los cambios que indicas Okram. La verdad, es que el problema en si que tenia y que motivo el uso de la clase que has compartido, los tengo solventados inicialmente...

No obstante, considero que como herramienta, es una "poderosa" aliada a la hora de simplificar númerosos procesos relacionados con el tratamiento de imagenes, por lo que aplicaré los cambios en la mayor brevedad posible y comentare mis "experiencias de torpe" con la comunidad, por si alguien se ha encontrado con la misma limitación.

Saludos y FELIZ AÑO NUEVO!!! :)
  Responder Citando
Antiguo 02-ene-2008, 05:52   #19 (permalink)
andruqui (Reg: agosto-2007)
 
269 Mensajes
Enviar un mensaje por MSN a andruqui andruqui está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Che, me lei la pagina y todo pero no encontre de donde descargar la libreria :(
Sera que aun no se me pasa el efecto del alcohol del año nuevo ?

Alguien me tira una ayuda ?

Saludos
Andres
  Responder Citando
Antiguo 02-ene-2008, 06:16   #20 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

En el menú superior del FAQ de la clase, encontraras un enlace que pone: ¡Descargalo!

Saludos
  Responder Citando
Antiguo 02-ene-2008, 06:21   #21 (permalink)
andruqui (Reg: agosto-2007)
 
269 Mensajes
Enviar un mensaje por MSN a andruqui andruqui está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Si, ese enlace me va al blog del autor, pero desde ahi no encuentro de donde descargarlo.

Alguien lo tiene y me lo puede mandar por mail?
Esta mi direccion de msn en el perfil.

gracias
Andres
  Responder Citando
Antiguo 02-ene-2008, 06:47   #22 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Andruqui... dentro del BLOG, si lees el articulo completo encontraras el enlace de la descarga directa.

Saludos.
  Responder Citando
Antiguo 02-ene-2008, 07:00   #23 (permalink)
andruqui (Reg: agosto-2007)
 
269 Mensajes
Enviar un mensaje por MSN a andruqui andruqui está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Ahi lo vi, creo que me voy a duchar y a dormir, aun siguen los efectos del alcohol :(

Saludos
Andres
  Responder Citando
Antiguo 02-ene-2008, 09:20   #24 (permalink)
 
9 Mensajes
asdf-1 está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Cita:
Iniciado por okram Ver Mensaje
Es cierto lo que dice _ssx. Al inicio, cuando armé la documentación, la programación del objeto era compatible con PHP4. Pero luego le añadí ciertos modificadores soportados unicamente desde PHP5. Prueba quitando todos los modificadores de acceso de tipo public y private. Asi deberia funcionar.

Disculpa las molestias, y la demora en contestar. Ando muy corto de tiempo y así lo estaré unos 10 dias mas

Un saludo,
Necesito esta clase..me solucionaria muchos problemas..pero al tratar de modificarla para php4 quitandole todos los public y private y otras cosas.... el codigo me arroja warnings de division por cero y otros mas q no recuerdo......el hecho es que en el ambito que yo quiero utilizar la clase, me sive la antigua ( http://ejemplos.fdw.myokram.info/redimension/rd.php?source ) porque no necesito hacer mas cosas con la imagen que eso....el problema surge cuando una vez tratada la imagen, quiero guardarla en el servidor, intente copiar el doSave desde la clase nueva, pero no guarda la imagen redimensionada, sino que guarda la imagen original.........como puedo adaptar esa clase antigua y agregar la opcion de guardar en el servidor??
  Responder Citando
Antiguo 03-ene-2008, 08:05   #25 (permalink)
 
9 Mensajes
asdf-1 está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

me respondo sola....en la funcion dosave lo unico que hay que cambiar para que guarde la imagen con el tamaño modificado son las lineas donde aparece $this->source. hay que cambiarlo por $this->output

Ej: imagejpeg($this->source,$destination,$quality);
debe ser sustituido por
imagejpeg($this->output,$destination,$quality);
  Responder Citando
Antiguo 03-ene-2008, 11:07   #26 (permalink)
walo (Reg: mayo-2004)
 
305 Mensajes
walo está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Esta muy muy buena! te felicito y gracias por compartir.
__________________
Staff Soporte
http://www.ihserver.net/
  Responder Citando
Antiguo 03-ene-2008, 20:41   #27 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Cita:
Iniciado por asdf-1 Ver Mensaje
me respondo sola....en la funcion dosave lo unico que hay que cambiar para que guarde la imagen con el tamaño modificado son las lineas donde aparece $this->source. hay que cambiarlo por $this->output

Ej: imagejpeg($this->source,$destination,$quality);
debe ser sustituido por
imagejpeg($this->output,$destination,$quality);
Quitando todos los private y public la clase debería quedar apta para usarse con PHP4. Asegúrate además de incluir antes de cada propiedad, y en vez de public/private la palabra var. Osea debería quedar así:

Código PHP:
class Imagen {
 
var 
$source null;
var 
$url "/";
var 
$ext "jpg";
var 
$w;
var 
$h;
var 
$mh;
var 
$mw;
var 
$rh;
var 
$rw;
var 
$cut 0;
var 
$info = array();
var 
$f1 "imagecreatefromjpeg";
var 
$f2 "imageJpeg";
var 
$type "jpeg";
var 
$error false;
 
//.... 
Además, el método constructor en PHP4 debe tener el mismo nombre que la clase. Cambia:
Código PHP:
function __construct($url=null) {
//... 
por
Código PHP:
function Imagen($url=null) {
//... 
Así debería funcionar.

Ya nos comentas.

@todos, como ya les mencioné, ando muy atareado estos días, por lo que mi participación en el foro es muy limitada. Sin embargo, esto está por terminar. Agradezco a todos los que están respondiendo las dudas planteadas en este tema por mí.

Un saludo,

Última edición por okram; 03-ene-2008 a las 21:23
  Responder Citando
Antiguo 04-ene-2008, 06:00   #28 (permalink)
 
9 Mensajes
asdf-1 está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

al hacer exactamente eso que dices arriba me arroja los siguientes errores


Warning: Division by zero ruta\PHPImagen.lib.php on line 81

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in ruta\PHPImagen.lib.php on line 111

Warning: Cannot modify header information - headers already sent by (output started at ruta\PHPImagen.lib.php:81) in ruta\PHPImagen.lib.php on line 205
  Responder Citando
Antiguo 04-ene-2008, 18:36   #29 (permalink)
Colaborador
okram (Reg: abril-2005)
 
3.409 Mensajes
Ubicación: *
okram está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Lo revisaré en estos días para ver cual es el error.

Un saludo,
  Responder Citando
Antiguo 05-mar-2008, 17:38   #30 (permalink)
Colaborador
 
992 Mensajes
Ubicación: Barcelona
popobcn está desconectado
Re: Edición de imágenes con PHPImagen (Aporte)

Cita:
Iniciado por asdf-1 Ver Mensaje
me respondo sola....en la funcion dosave lo unico que hay que cambiar para que guarde la imagen con el tamaño modificado son las lineas donde aparece $this->source. hay que cambiarlo por $this->output

Ej: imagejpeg($this->source,$destination,$quality);
debe ser sustituido por
imagejpeg($this->output,$destination,$quality);
Buenas,

Pues la verdad.... ES QUE TENGO EXACTAMENTE ESE PROBLEMA. No se exactamente que estaré haciendo mal, pero el archivo creado con la funcion doSave no presenta ningún cambio en sus dimensiones... Llevo un rato dandole vueltas pero nah de nah. He aplicado las modificaciones que sugiere asdf-1 en este hilo, pero aún así continua haciendo lo mismo.

No obstante, puede que el problema este en otro lado, os pongo el código con el que estoy trabajando:

Primero copio la imagen que deseo tratar con diferentes nombres, con el fin de que se sobreescriban, para ello tengo dos ficheritos... uno en el que tras efectuar la subida de imagenes hago las correspondientes copias del archivo:

Código PHP:
<?
copy
("rutaabsoluta/$archivo","/rutaabsoluta/thumbnail_xx_$archivo");
copy("rutaabsoluta/$archivo","/rutaabsoluta/thumbnail_xx_$archivo");    
//llamamos al fichero que recoge los parametros, como en el ejemplo de okram
echo "<img src=\"trataimg.php?file=/rutabasoluta/thumbnail_xx_$archivo&ancho=275&alto=180&cut=true\">";
?>
Este es el contenido del ficherin "tratarimg.php":

Código PHP:
<?
if(isset($_GET['source'])) { 
    
highlight_file(__FILE__); 
    exit; 


$imagen $_GET['file'];  
include_once 
"PHPImagen.lib.php";  
$imagen = new Imagen($imagen);  
$nuevo_ancho $_GET['ancho']; 
$nuevo_alto $_GET['alto']; 
$cut = (isset($_GET['cut'])) ? true false
$imagen->resize($nuevo_ancho$nuevo_altotrue); 
$imagen->doSave("$imagen",90);
?>
Actualmente, estoy empleando la version para PHP4 y me estoy volviendo algo loco... xD por que no soy capaz de encontrar el problema.

Gracias y saludos
  Responder Citando
Respuesta
SíEste tema le ha gustado a 4 personas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 21:13.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106