различия при сжатии растрового изображения в Google Nexus - PullRequest
0 голосов
/ 19 июня 2010

Я сжимаю растровый объект в OutputStream, используя «Сжать» функцию. Вот мой код:

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;
                }

когда я запускаю этот код на G1 и hero, я получаю правильный выходной поток (который я позже сохраняю в файл изображения на SDCard). Но когда я тестирую этот код в Google Nexus, я получаю размытое изображение после преобразования выходного потока в файл изображения.

FYI

ОС: Android 1.5; G1 и Hero установлены на 1.5 ОС, а Nexus на 2.0

Пожалуйста, помогите .. есть ли известная проблема в Nexus ?? или я что-то не так делаю ??

1 Ответ

1 голос
/ 19 июня 2010

Проверка Разработка игр для Android: краткий учебник .

С Step Three: Carefully Design the Best Game Ever:

Проблема со сжатием текстур это другая видеокарта поставщики поддерживают разные текстуры форматы. G1 и другие MSM7k устройства поддерживают ATITC от ATI формат сжатия. Дроид поддерживает PowerVR в формате PVRTC. от Nvidia Платформа Tegra2 поддерживает DXT формат. Плохая новость в том, что эти форматы не совместимы Хорошая новость в том, все устройства OpenGL ES 2.0 (включая основанный на Snapdragon Nexus One, Устройства на базе OMAP3 Droid и Tegra2) поддержка общего формата под названием ETC1. ETC1 не лучший формат текстур отсутствует поддержка альфа-каналов), и не поддерживается на первом устройства поколения, но это самый поддерживается общий формат (Android SDK предоставляет утилиту компрессора (см. sdk / tools / etc1tool) и инструменты времени выполнения для этого формата).

...