Файлы и Base64

от
Android    base64

Как-то на форуме задавал вопрос на тему того, как считать файл .png из assets в массив байт(была затея с защитой графики). Не знаю почему, но картинка в буффер не читалась, а вот с .txt файлом проблем не возникло. И пришла мне в голову вот такая дурацкая вещь...
Решил я свои картинки перевести в текст через Base64, и уже эти .txt файлы кинуть в папку assets. А для удобства открывания сделал в активити простой метод:
  1. ...
  2. private byte[] buffer;
  3. private InputStream is;
  4. private Bitmap buffBitmap;
  5. private String dataFile;
  6. private int size;
  7. public static MainActivity link;
  8. ...
  9. public Bitmap getBase64(String fileName) {
  10.      try {
  11.         //поток принимает файл.txt из assets
  12.         is = this.getAssets().open(fileName);
  13.         //получаем размер файла
  14.         size = is.available();
  15.         //задаём массив байт
  16.         buffer = new byte[size];
  17.         //читаем в него наш файл.txt
  18.         is.read(buffer);
  19.         //получаем строку
  20.         dataFile = new String(buffer);
  21.         is.close();
  22.         //задаём новые данные в буфер
  23.         buffer = Base64.decode(dataFile.getBytes(), Base64.DEFAULT);
  24.         //буфферный битмап принимает массив buffer
  25.         buffBitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);
  26.     } catch (Exception e) {}
  27.     //эти данные примет bitmap из view
  28.     return buffBitmap;
  29. }

А потом в своей View просто задавать битмапы так:
  1. private Bitmap myBitmap;
  2. ...
  3. myBitmap = MainActivity.link.getBase64("test.txt");

Так как в ходе процесса файл читается в String-переменную, то это и можно использовать для прятания графики. Например читать кусками или клеить картинку из нескольких String-переменных... Вобщем придумать можно что-нибудь. Да и в Base64 можно запихать "не только лишь" картинки ;) Файл.txt весом 100kb+ открылся моментально. Всё это накрутилось в процессе создания одной игрушки(хотя я понимаю, что Base64 не из этой области). Может кому-нибудь это будет интересно...
  • +3
  • views 2035