画像をキャプチャしてその画像を文字列に変換し、その文字列をtxtファイルに書き込み、サーバーに送信してサーバーがそのファイルを読み取り、その文字列を再度画像に変換する必要があるAndroidでアプリケーションを開発したい...
これで、画像を取得してその画像を文字列に変換し、その文字列をtxtファイルに書き込むことができました。
しかし、そのファイルを読み取ってその文字列を画像に変換しようとすると、機能しません...
画像を文字列に変換するコードは
File imageFile = new File(path);
Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] image = stream.toByteArray();
imgstr = Base64.encodeToString(image, 0);
それをファイルに書き込むためのコードは
File file = new File("new.txt");
FileWriter w = new FileWriter("/sdcard/new/new.txt");
BufferedWriter out = new BufferedWriter(w);
out.write(data);
out.flush();
out.close();
そして、そのファイルを読み取り、その文字列を再度画像に変換するコードは
FileInputStream fstream = new FileInputStream("/sdcard/new/new.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
ArrayList list=new ArrayList();
while ((strLine = br.readLine()) != null)
{
list.add(strLine);
}
Iterator itr;
for (itr=list.iterator(); itr.hasNext(); )
{
String str=itr.next().toString();
StringBuffer sb=new StringBuffer(str);
int length=sb.length();
String imageDataString = sb.substring(0, length);
byte[] decodedString = Base64.decode(imageDataString, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length);
FileOutputStream imageOutFile = new FileOutputStream("/sdcard/new/android.jpg");
imageOutFile.write(decodedString);
imageOutFile.close();
System.out.println("File converted");
しかし、その文字列を画像に変換していないので、解決策を教えてください...