[英]How to save a bitmap that I got from camera, to the sd card without losing it's original size and quality
[英]Android: Resize an JPEG from SD Card without losing quality
通常,我使用StackO的搜索功能找到所需的一切。 但是現在(成功減少了)我真的在努力從SD卡調整JPEG的大小,而又不會降低質量。 如下所示,您可以看到原始圖像是干凈的並且可讀性很好。 調整大小后,我總是會得到模糊的結果。
原文: https : //www.dropbox.com/s/l5h4cdkz29vkapw/signature.jpg?dl = 0
縮放比例: https ://www.dropbox.com/s/tobijbu5hisf9rz/signature_small.jpg ? dl = 0
在下面的代碼段落中,您可以看到我嘗試的所有嘗試都沒有成功(我希望我錯了,但是我認為該段落包括了StackO的所有真正有用的答案。):
public void saveSignature(View view) throws IOException {
image = signature.getImage();
File sd = Environment.getExternalStorageDirectory();
File final_location = new File(sd, "signature.jpg");
try {
if (sd.canWrite()) {
final_location.createNewFile();
OutputStream os = new FileOutputStream(final_location);
image.compress(Bitmap.CompressFormat.JPEG, 100, os);
os.close();
//Bitmap resized = Bitmap.createScaledBitmap(image,(int)(image.getWidth()*0.4),(int)(image.getHeight()*0.4), false);
//Bitmap resized = Bitmap.createScaledBitmap(image, 300,75, false);
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
// "works but Color ist gray from sampling" bmOptions.inSampleSize = 5;
final_location = new File(sd, "signature_small.jpg");
final_location.createNewFile();
os = new FileOutputStream(final_location);
Bitmap b= BitmapFactory.decodeFile(sd +"/signature.jpg",bmOptions);
Bitmap out = Bitmap.createScaledBitmap(b, 349, 86, true); //also tyed false (without any Change)
out.compress(Bitmap.CompressFormat.JPEG, 100, os);
os.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
獲得一些答案或指向Android(4.0及更高版本)示例的鏈接將非常好。
謝謝您的幫助,艱難!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.