Wpis z mikrobloga

#android #androiddev #programowanie

Tworzę prosty program szyfrujący pliki graficzne. Z obrazu tworzę bitmapę:

ImageView imageView = findViewById(R.id.originalImage);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();

Potem dla każdego pixela pobieram wartości rgb:

for(int i=0; i<height; i++){
for(int j=0; j<width; j++){
int pixel = bitmap.getPixel(j, i);

imgBytes[index++] = (byte) Color.red(pixel);
imgBytes[index++] = (byte) Color.green(pixel);
imgBytes[index++] = (byte) Color.blue(pixel);
imgBytes[index++] = (byte) 0; //alpha
}
}

Szyfruję odpowiednim algorytmem, po czym odszyfrowuję i wyświetlam w ten sposób:

//dla każdego pixela:
int colorDecrypted = Color.argb(decryptedBytes[indexD++], decryptedBytes[indexD++], decryptedBytes[indexD++], decryptedBytes[indexD++]);
decryptedBitmap.setPixel(j, i, colorDecrypted );
[...]
decryptedImageView.setImageBitmap(decryptedBitmap);

Niestety finalny efekt jest taki jak na załączonym obrazku. Wygląda jakby nie było w ogóle koloru niebieskiego w wyświetlanych bitmapach. Szyfrowanie/odszyfrowanie przebiega poprawnie, problem leży w samym wyświetlaniu. Macie pomysł co może być przyczyną?
piotrek-5 - #android #androiddev #programowanie 

Tworzę prosty program szyfrujący ...

źródło: comment_soAYRLuONYfnmBz7ZQnvMZbleytGNabP.jpg

Pobierz
  • 10