1
私は写真を撮って、キャッシュに画像として保存しています。私はまた、イメージに名前をつけて、後で見つけるために名前を保存します。Couchbaseライトで高解像度の画像を保存する
if ((requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK)){
Bitmap photo = (Bitmap) intent.getExtras().get("data");
//save photo
Date dTime = new Date();
String pictureName = String.valueOf(dTime.getTime()).substring(1,10);
// saved in internal program cache storage
String extr = getCacheDir().toString();
File myPath = new File(extr, "DVIR");
if (!myPath.exists()) {
myPath.mkdirs();
}
FileOutputStream fos;
try {
fos = new FileOutputStream(myPath + "/" + pictureName + ".png");
assert photo != null;
photo.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
MediaStore.Images.Media.insertImage(getContentResolver(),
photo, myPath.getPath(), pictureName + ".png");
photos.add(pictureName);
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast toast = Toast.makeText(getApplicationContext(),
String.valueOf(e), Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} catch (Exception e) {
e.printStackTrace();
Toast toast = Toast.makeText(getApplicationContext(),
String.valueOf(e), Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
画像を取得して添付ファイルとして保存すると、画像名はphotos []配列に保存されます。
try {
assert document != null;
document.putProperties(properties);
if(photos.size()>0) {
String pName;
for(int i=0;i<photos.size();i++){
pName = photos.get(i);
UnsavedRevision newRev = document.getCurrentRevision().createRevision();
newRev.setAttachment(pName + ".png", "image/png", getphotoFromStorage(pName));
newRev.save();
}
}
} catch (CouchbaseLiteException e) {
e.printStackTrace();
Toast toast = Toast.makeText(getApplicationContext(),
"Save Failed" + e, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
写真を取得すると、400ピクセル幅の画像がピクセル化されます。
アイデア? ありがとう
私は混乱しています。これがCouchbase Liteの問題だと思うものがありますか? CBLに関する限り、イメージはバイナリBLOBなので、圧縮などを邪魔しているわけではありません。他の処理(photo.compressまたはMediaStore)でイメージが変更されていないことを確認しましたか? – Hod
プロセスのどの部分が解像度を下げているかわかりません。それは私がどのようにイメージを見ているかを思い出させる。私は、anglejsとpouchdbを使用してcouchbaseサーバーから画像を取得するWebアプリケーションで画像を表示しています。プロセスの途中でイメージを確認するにはどうしたらいいですか?ご協力いただきありがとうございます。 –
私は検査ツールを使用して、ブラウザでレンダリングしたときにイメージの実際の大きさを確認することから始めます。これは最も可能性の高い問題です。さもなければ、私はさまざまなポイントでイメージのバイト単位でサイズをチェックします。私が推測している可能性のある2番目の問題は、getPhotoFromStorageによって返されるものです。あなたの写真はあなたが期待していた方法で保存されていない可能性があります。 – Hod