Я хочу скопировать изображение из папки asstets и вставить его в мою упаковку, просто для теста. но окончательное изображение ничего не показывает. когда я хочу открыть рисунок краской, он говорит, что «Это недопустимый растровый файл».
В моей программе я начинаю читать исходное изображение следующим образом:
private void copyImage()
{
AssetManager am = getResources().getAssets();
try{
image = BitmapFactory.decodeStream(am.open("tasnim.png"));
imWidth = image.getWidth();
imHeight = image.getHeight();
}
catch(IOException e){
e.printStackTrace();
System.out.println("Error accoured!");
}
}
Далее я получу пиксели изображения или извлечу пиксели и сохраню пиксели в массиве целых чисел (rgbstream).
private void getPixelsOfImage()
{
rgbStream = new int[imWidth * imHeight];
image.getPixels(rgbStream, 0, imWidth, 0, 0, imWidth, imHeight);
}
наконец, я хочу сохранить его в своем пакете,
private void createPicture()
{
contextPath = context.getFilesDir().getAbsolutePath();
String path = contextPath + "/" + picName;
try{
FileOutputStream fos = new FileOutputStream(path);
DataOutputStream dos = new DataOutputStream(fos);
for(int i=0; i<rgbStream.length; i++)
dos.writeByte(rgbStream[i]);
dos.flush();
dos.close();
fos.close();
}
catch(IOException e){
System.out.println("IOException : " + e);
}
System.out.println("Picture Created.");
}
Код работает нормально, но ничего не получается !!! :(
Когда я проверяю DDMS, он создает новый файл и сохраняет все пиксели (потому что он показывает, что размер этого файла равен 13300, а размер моего исходного изображения равен 100 * 133). когда я нажимаю «извлечь файл с устройства», я могу сохранить его на своем рабочем столе. Однако когда я его открою :) ничего.
Что вы думаете? есть ли проблема в моем коде?
Спасибо