2010-06-19 6 views
0

Je compresse un objet bitmap à OutputStream en utilisant fonction "Compress". Voici mon code:discription lors de la compression d'un bitmap sur Google nexus

try { 
        if (bitmap != null) { 
         bitmap.compress(Bitmap.CompressFormat.JPEG, 100, 
           bytes); 
        } else { 
         Message message = handler.obtainMessage(1, "false"); 
         handler.sendMessage(message); 
         return; 
        } 
       } catch (OutOfMemoryError oom) { 
        System.gc(); 
        Message message=handler.obtainMessage(1,"false"); 
        handler.sendMessage(message); 
        return; 
       } catch (NullPointerException npe) { 
        System.gc(); 
        Message message = handler.obtainMessage(1, "false"); 
        handler.sendMessage(message); 
        return; 
       } catch (Exception e) { 
        System.gc(); 
        Message message = handler.obtainMessage(1, "false"); 
        handler.sendMessage(message); 
        return; 
       } 

quand je cours ce code sur G1 et héros, je reçois un flux de sortie appropriée (que je sauverai plus tard à un fichier image sur carte SD). Mais quand je teste ce code sur Google nexus, je reçois une image floue après la conversion du flux de sortie dans un fichier image.

FYI

OS: applications 1,5; G1 et Hero sont sur 1.5 OS et nexus est sur 2.0

S'il vous plaît aider .. y at-il un problème connu dans nexus ?? ou suis-je en train de faire quelque chose de mal ??

Répondre

1

Vérifiez Game Development for Android: A Quick Primer.

De Step Three: Carefully Design the Best Game Ever:

Le problème avec la compression de texture est que les différentes cartes graphiques fournisseurs prennent en charge différents formats texture . Le G1 et les autres périphériques MSM7k prennent en charge le format de compression ATITC . Le Droid prend en charge le format PVRTC de PowerVR. La plate-forme Tegra2 de Nvidia prend en charge le format DXT . Les mauvaises nouvelles sont, ces formats ne sont pas compatibles. Les bonnes nouvelles sont, tous les périphériques OpenGL ES 2.0 (y compris le Nexus One basé sur Snapdragon, le Droid basé sur OMAP3, et les dispositifs Tegra2) supportent un format commun appelé ETC1. ETC1 est pas le meilleur format de texture (il manque de support pour les chaînes alpha), et il ne sera pas supporté sur les premiers dispositifs de génération, mais il est le plus format commun supporté (SDK applications fournit un utilitaire de compresseur (voir sdk/tools/etc1tool) et les outils d'exécution pour ce format).

Questions connexes