Java: проблема при замене bitmap.SetPixel() на bitmap.SetPixels()

#java #android #bitmap #android-bitmap #bitmapfactory

#java #Android #растровое изображение #android-bitmap #bitmapfactory

Вопрос:

У меня есть следующий код:

  Bitmap bitmap = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_4444); 

    for (int y = 0; y < HEIGHT; y  ) {
        for (int x = 0; x < WIDTH; x  ) {
            int index = y * WIDTH   x;
            bitmap.setPixel(x, y, Color.argb(255, 0, mask[index],0)); // mask is an array of int between 0 and 255 
        }
    }
  

Это работает правильно: я получаю свое растровое изображение, но … этот код действительно очень медленный.

Я попытался заменить его на:

  Bitmap bitmap = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_4444);
bitmap.setPixels(mask, 0, WIDTH, 0, 0, WIDTH, HEIGHT);
  

но это не работает. Я получаю черное изображение.

Кто-нибудь может помочь?

Спасибо!

Комментарии:

1. Что mask именно? setPixels ожидается массив целых чисел цвета. В циклической версии вы создаете цвет из значения маски, но в другой версии вы этого не делаете.

2. Большое спасибо! Я, наверное, немного устал вчера вечером 🙂 Да, мне нужно заменить значения моего массива цветами! Спасибо.