2015-08-10 5 views
0

Я искал, но я не нашел вопрос о том, как Пикселизации растрового изображения в андроидеКак Пикселизация растрового изображения андроида

Пример

A

Примечание, что я dont mean blur

+3

Пожалуйста, улучшите свои навыки работы с Google: http://www.41post.com/4241/programming/android-disabling-anti-aliasing-for-pixel-art –

+0

hahahahahahahahah: ') – Device

ответ

5

Вы можете просто попробовать и изменить размер этого изображения на меньшую сторону ион (а затем обратно вверх, если вам это нужно в том же размере, что и оригинал по какой-то причине)

{ 
    Bitmap original = ...; 
    //Calculate proportional size, or make the method accept just a factor of scale. 
    Bitmap small = getResigetResizedBitmap(original, smallWidth, smallHeight); 
    Bitmap pixelated = getResigetResizedBitmap(small, normalWidth, normalHeight); 
    //Recycle small, recycle original if no longer needed. 
} 

public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) { 
    int width = bm.getWidth(); 
    int height = bm.getHeight(); 
    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 
    // CREATE A MATRIX FOR THE MANIPULATION 
    Matrix matrix = new Matrix(); 
    // RESIZE THE BIT MAP 
    matrix.postScale(scaleWidth, scaleHeight); 

    // "RECREATE" THE NEW BITMAP 
    Bitmap resizedBitmap = Bitmap.createBitmap(
     bm, 0, 0, width, height, matrix, false); 
    return resizedBitmap; 
} 

Код от here

+1

Уловка в настройке анти- aliasing boolean to ** false **. –

0

Самый простой способ пикселизация изображения будет масштабировать изображение вниз используя "nearest neighbour" algorithm, а затем масштабируйте, используя тот же алгоритм.

Фильтровать по изображению, пытаясь найти среднее, занимает гораздо больше времени, но на самом деле не дает никаких улучшений в качестве результата, ведь вы намеренно хотите, чтобы ваше изображение исказилось.

Смежные вопросы