Comunidad de diseño web y desarrollo en internet online

Generar imágen solo con código

Citar            
MensajeEscrito el 30 Mar 2010 09:25 pm
Hola, últimamente he estado haciendo experimentos con alivePDF, muy buena libreria y todo, con practicamente 0 documentación práctica y ningún demo lo suficientemente bueno como para aprender leyendo código, pero sin embargo salen muy buenas cosas una vez adivinas como se usa.

Pero ahora, tengo una necesidad un tanto diferente que se que flex debe manejar nativamente pero no se ni como se busca y es la generación de bitmaps. Mi referencia a la librería de alivePDF es porque me gustaría crear la imagen de la misma forma que se hace allí, osea, poder definir una imagen de fondo y poder incrustar texto en determinadas coordenadas y finalmente entregar el archivo para descarga.

Si alguien me puede apuntar en la dirección correcta, es que todo lo que busco sobre bitmaps para flex tienen que ver con video, screenshots y nada de lo que busco.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 31 Mar 2010 06:16 am
Supongo que podemo rellenar un BitmapData mediante el método setPixels() generando nosotros la matriz como queramos, aunque no sé si es "la dirección correcta"

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Mar 2010 01:47 pm
pero eso requiere que yo le especifique pixel por pixel, que va a aparecer en el bitmap, no?

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 31 Mar 2010 02:34 pm
Vale, mal apuntado. Puesde usar el método draw() de la clase BitmapData, para dibujar cualquier objeto IBitmapDrawable (Bueno, cualquier DisplayObject o de clases deribadas, en lugar de añadirlo al escenario con addChild se puede "dibujar" en un bitmapData.

Código ActionScript :

//Del ejemplo de Adobe

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.text.TextField;

var tf:TextField = new TextField();
tf.text = "bitmap text";

var myBitmapData:BitmapData = new BitmapData(80, 20);
myBitmapData.draw(tf);
var bmp:Bitmap = new Bitmap(myBitmapData);
this.addChild(bmp);

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Abr 2010 02:16 am
pero he estado luchando con el método Scroll tratando de posicionar ese textfield pero no he podido, habrá alguna forma de decirle las coordenadas (x,y) de donde quiero que se dibuje lo que voy poniendo en el bitmapdata?

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 09 Abr 2010 12:51 am
pues nada, aún no le encuentro la maña, encima no encuentro como ponerle fondo... :(

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 09 Abr 2010 06:37 am
Perdona Xyrer (se me escapó el post)
Supongo que si no podemos posicionar el TextField siempre nos podremos crear un bitmap nuevo y copiar uno en el otro.
Respecto al fondo, comencemos con el bitmapData de una imagen

Código ActionScript :

//Creamos un loader y cargamos la imagen de fondo
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
var request:URLRequest = new URLRequest("fondo.jpg");
loader.load(request);

//Una vez cargada
private function initHandler(event:Event):void {
    //Hallamos el contenido que es un Bitmap
    var loader:Loader = Loader(event.target.loader);
    var image:Bitmap = Bitmap(loader.content);

    //Usamos una variable para acceder al BitMapData
    var bitmapDataContenedor:BitmapData = image.bitmapData;
    
    //Creemos un texto
    var tf:TextField = new TextField();
    tf.textColor=0xFF0000;
    tf.text = "bitmap text";

    //Y un bitmapData, donde pondremos el texto
    var bitmapDataTexto:BitmapData = new BitmapData(200, 200);
    bitmapDataTexto.draw(tf, null, null, null, null, true);
    
    //Copiamos parte del bitmap anterior en nuestro bitmap de fondo
    var rect:Rectangle = new Rectangle(0, 0, tf.textWidth,tf.textHeight);
    var pt:Point = new Point(100, 100);
    bitmapDataContenedor.copyPixels(bitmapDataTexto, rect, pt);

    //Finalmente le damos la propiedad "smoothing" a nuestro bitmap
    //Y lo añadimos al stage
    image.smoothing = true;
    this.addChild(image);   
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 May 2010 10:49 pm
bueno, finalmente me parece que para hacer algo tan sencillo, es demasiado lo que se debe hacer, le falta mucho madurar a flex para tener algo que si sirva para crear imágenes.

Por ahora me quedo con la libreria GD de php, muchas gracias, aprendí mucho con esto.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.