[英]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.