В моем проекте у меня есть изображение, которое с помощью программы я извлекал пиксели, манипулировал этими пикселями и затем сохранял его в своем пакете. Способ, которым я его сохранил, таков:
private void createPicture()
{
System.out.println("Inside createPicture");
System.out.println(contextPath);
try{
FileOutputStream fos = new FileOutputStream(contextPath + "/" + picName);
DataOutputStream dos = new DataOutputStream(fos);
for(int i=0; i<splitedPixel.length; i++)
dos.writeByte(splitedPixel[i]);
dos.flush();
dos.close();
}
catch(IOException e){
System.out.println("IOException : " + e);
}
System.out.println("Picture Created.");
}
так, это сохраняет мою фотографию в этом каталоге
/ данные / данные / my_package_name / файлы / myPic.bmp
Теперь я хочу прочитать это новое изображение и извлечь пиксели этого изображения. Я использовал этот метод:
public Stego(Context context)
{
//Instantiate an ImageView and define its properties
contextPath = context.getFilesDir().getAbsolutePath();
image = BitmapFactory.decodeFile(contextPath + "/" + picName);
System.out.println("Image= " + image);
imWidth = image.getWidth();
imHeight = image.getHeight();
getMaxMessageChars();
System.out.println("Width: " + imWidth);
}
Программа вылетает здесь. logcat указывает, что результат для изображения равен нулю, и когда программа достигает значения getWidth, происходит сбой.
Правильны ли эти способы написания и чтения?
Могу ли я зайти в каталог через эмулятор, чтобы проверить, создана эта картинка или нет?
Спасибо