Сохранение прозрачного изображения в Android с помощью ALPHA_8Android

Форум для тех, кто программирует под Android
Anonymous
Сохранение прозрачного изображения в Android с помощью ALPHA_8

Сообщение Anonymous »

Я создаю накладываемое изображение, которое будет располагаться поверх другого изображения в качестве своего рода фильтра, подчеркивая те части изображения, на которых я хочу, чтобы пользователь сосредоточил внимание. По сути, изображение будет просто белым в некоторых местах и ​​прозрачным в других с размытием между этими сегментами.

Я пытаюсь сохранить это изображение в своей базе данных и могу Не могу заставить компрессию работать. Ниже приведен фрагмент кода, с которым у меня возникли проблемы.

Код: Выделить всё

Bitmap image = Bitmap.createBitmap(width, height, Config.ALPHA_8)
... // create image
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream); // always returns false
Я пробовал сохранить эти изображения в файлы, результат тот же. Чередуя формат сжатия, качество (в случае JPEGS) тоже не имело значения. Единственный формат с поддержкой альфа-канала, который я мог использовать, — это ARGB_8888. Для меня это проблема, так как размер моих изображений превышает 1000 x 1000 пикселей, поэтому мне НУЖНО сэкономить место. Выделение 4 байтов на пиксель вызывает проблемы с памятью.

Известна ли проблема сжатия изображений ALPHA_8 на Android? Есть ли определенный набор параметров растрового изображения, которые необходимо установить, чтобы это работало? Я просмотрел Интернет и SO, и хотя некоторые люди, похоже, тоже сталкивались с этим, большинство, похоже, просто переходят на вариант ARGB_8888 и не имеют решения для ALPHA_8

Любая помощь приветствуется

Подробнее здесь: https://stackoverflow.com/questions/210 ... ng-alpha-8

Вернуться в «Android»