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.