#java #android #bitmap #fileoutputstream
#java #Android #растровое изображение #fileoutputstream
Вопрос:
В настоящее время я создаю приложение для стеганографии с использованием Java и Android, и я не могу найти правильный способ перемещения больших растровых изображений через действия без потери скрытого сообщения на изображении. Почему растровое изображение меняется при перемещении его через действия?
Первое действие:
String filename = "bitmap";
FileOutputStream stream = this.openFileOutput(filename, Context.MODE_PRIVATE);
bitmap.compress(Bitmap.CompressFormat.PNG, 100,stream);
stream.close();
Intent intent = new Intent(this, save_image.class);
startActivity(intent);
Второе действие, растровое изображение получено:
try {
bitmap = BitmapFactory.decodeStream(this.openFileInput("bitmap"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Комментарии:
1. Во-первых, возможно, должно быть только одно действие вместо двух. Современная разработка Android требует меньшего количества действий, возможно, только одного для всего приложения, с использованием фрагментов для управления экранами. Во-вторых, даже если вы чувствуете, что хотите выполнить несколько activities, вам не нужно сохранять растровое изображение на диск, чтобы начать другое activity. Осторожно используйте объект singleton repository для кэширования растрового изображения, отпуская его, как только вы закончите.
2. В-третьих, если ваша стеганография не сохраняется при записи на диск, это, вероятно, будет более серьезной проблемой, чем просто этот конкретный сценарий. Используйте Device File Explorer в Android Studio, чтобы скопировать PNG на свой компьютер разработки и посмотреть, содержится ли в нем ваше закодированное сообщение.
3. Спасибо за ваш ответ… я постараюсь уменьшить количество действий и посмотреть, что происходит с файлом png. @CommonsWare