У меня есть растровое изображение, пиксели которого содержат только два значения argb: чистый черный и чистый прозрачный. Затем я масштабирую растровое изображение в Android, теперь растровое изображение имеет много значений argb: чистый черный и чистый прозрачный и черный с различными уровнями прозрачности (т.е. наполовину прозрачный черный); это связано с автоматической интерполяцией Android. Я хотел бы, чтобы пиксели растровых изображений содержали только два исходных значения argb.
В настоящее время я выполняю это с помощью следующего процесса:
my_bitmap = Bitmap.createScaledBitmap(BitmapFactory
.decodeResource(context.getResources(),
R.drawable.my_resource),
new_width, new height, false);
for (int i = 0; i < my_bitmap.getWidth(); i++) {
for (int j = 0; j < my_bitmap.getWidth(); j++) {
if (my_bitmap.getPixel(i, j) != Color.TRANSPARENT) {
my_bitmap.setPixel(i, j, Color.BLACK);
}
}
}
Это очень медленно на более дешевом телефоне даже для небольшого растрового изображения, кто-нибудь знает, как А) сделать это намного быстрее или Б) масштабировать растровое изображение без появления новых значений argb?