Software con descuentos!

jueves, junio 29, 2006

Algunos tips sobre manejo de gráficos en Squeak y Seaside

Una forma de mostrar gráficos (png, jpg) es leyéndolos desde el disco rígido, sin embargo, es mucho más cómodo incluirlos en algún método de nuestros objetos en forma de código fuente, de manera que los podamos tener disponibles cada vez que instalemos nuestro código en una nueva imagen.

La forma de hacerlo es la siguiente:

myMethod



x := Form fromFileNamed:'reload.png'.

xArray := x bits asArray.



^ ShoreForm

extent: 32@32

depth: 32

fromArray: xArray

offset: 0@0.


El código es muy simple y se explica por si mismo (en el ejemplo reemplazamos el logo de ShoreComponents por uno propio).

Como usamos la clase Form para esta tarea y la misma trabaja con imágenes de tipo gif, seguramente vamos a tener problemas de definición en los íconos que veamos desde Seaside, lo cual se arregla reemplazando el método asMIMEDocument de la clase Form, de la siguiente manera:

asMIMEDocument

| aStream rw |

aStream := RWBinaryOrTextStream on: String new.

rw := PNGReadWriter on: aStream.

rw nextPutImage: self.

rw close.

aStream reset.

^MIMEDocument contentType: 'image/png' content: aStream contents

Gracias a Diego por este último tip.

2 comentarios:

bellnet dijo...

Hola, queria saber si sabes si existe algun framework para hacer graficos de torta o de barra en squeak, saludoss

Germán Arduino dijo...

Hola:

Algunas urls:

Demo en vivo:
http://seachart.seasidehosting.st/

PlotKit se puede bajar desde:

MCHttpRepository
location: 'http://www.squeaksource.com/seachart'
user: ''
password: ''

Otras referencias:
http://wiki.squeak.org/squeak/2624
http://wiki.squeak.org/squeak/2626