私はvolleyとbitmapの助けを借りてサーバに画像をアップロードし、データを正常に渡しますが、カメラを使用して画像を撮影すると、 500KBを超えるサイズの画像を渡すと、アプリがクラッシュするようになります。なぜこれが起こるのですか? は、誰もが、これは私のカメラの意図がイメージに影響を与えずにテキストをサーバにアップロードする方法
private void onCaptureImageResult(Intent data) {
thumbnail = (Bitmap) data.getExtras().get("data");
File destination = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
FileOutputStream fo;
try {
destination.createNewFile();
fo = new FileOutputStream(destination);
//fo.write(bytes.toByteArray());
fo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (thumbnail!=null){
addImageNew.setImageBitmap(thumbnail);
}
}
が、これは私のギャラリーの意図は、私は文字列にビットマップを変換する方法を
private void onSelectFromGalleryResult(Intent data) {
thumbnail=null;
if (data != null) {
try {
thumbnail = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
} catch (IOException e) {
e.printStackTrace();
}
}
if (thumbnail!=null){
addImageNew.setImageBitmap(thumbnail);
}
}
これを行う方法です行う方法です
、私を助けることができる
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 90, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
注:私は画質と高サイズの画像passinにのみ問題がありますg
iは、パスの文字列に隠れたビットマップにgetStringImage()を使用してお返事ありがとうございましたが、私は私のproblm – Sam