purePDF and transparent BitmapData

Recently I’ve updated purePDF to a new version fixing one bug which caused problems with PNG images.
However when you’re trying to add BitmapData with transparency  to a pdf document you probably get black backgrounds to your images. This is because internaly purePDF converts bitmapdata into 24bit tiff images, so no alpha informations.

This is a script you can use to convert your BitmapData images into transparent pdf ImageElements:

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
/**
 * Create a transparent ImageElement
 *
 * An ImageElement with the input bitmapdata RGB informations will be
 * created and an ImageElement will be used as mask ( using the alpha info from the bitmapdata )
 * If the input bitmapdata is not transparent a regular ImageElement will be returned.
 */

protected function createTransparentImageElement( bitmap: BitmapData ): ImageElement
{
        var output: ByteArray = new ByteArray();
        var transparency: ByteArray = new ByteArray();
        var input: ByteArray = bitmap.getPixels( bitmap.rect );
        input.position = 0;
       
        while( input.bytesAvailable ){
                const pixel: uint = input.readInt();
               
                // write the RGB informations
                output.writeByte( (pixel >> 16) & 0xff );
                output.writeByte( (pixel >> 8) & 0xff );
                output.writeByte( (pixel >> 0) & 0xff );
               
                // write the alpha informations
                transparency.writeByte( (pixel >> 24) & 0xff );
        }
       
        output.position = 0;
        transparency.position = 0;
       
        var mask: ImageElement = ImageElement.getRawInstance( bitmap.width, bitmap.height, 1, 8, transparency, null );
        var image: ImageElement = ImageElement.getRawInstance( bitmap.width, bitmap.height, 3, 8, output, null );

        if( bitmap.transparent )
        {
                mask.makeMask();
                image.imageMask = mask;
        }
        return image;
}

and here there’s a demo app: http://bit.ly/dOT2ob

Android experiments

As you probably understood during last days I’m completely absorbed in Android development.
While experimenting new things ( it remembers to me the first days with Flash 🙂 ) I did a couple of applications and I’ve published them to the market ( it takes less than one hour to be published on the market, just some weeks less than on the app store ).

First one is a simple note application, very similar to the iPhone note app. This one was for testing the ContentProvider and the built-in android search feature.
Second one is for view, search, plan routes for the Milan subway. This is a mix of features: google maps api, layar intergration, gps locations..