我是android的新手,正在学习如何使用相机并将图片保存在sqlite数据库中。为此,我遵循此示例 https://github.com/sprejjs/MyMemoriesDB
实际上非常好,唯一的问题就是图片的质量。当您打开相机时,它看起来还不错,但是,当您保存相机时,它看起来很糟糕,失去了很多画质。如何使用该示例来提高质量?
答案 0 :(得分:1)
如果查看该库的代码,您会发现Memory具有构造函数:
public Memory(String title, Bitmap image) {
this.title = title;
this.image = bitmapToString(resizeBitmap(image));
}
请注意,此构造函数调用
resizeBitmap(image)
如果您查看该代码,将会看到:
public static Bitmap resizeBitmap(Bitmap bitmap) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float scaleWidth = PREFERRED_WIDTH / width;
float scaleHeight = PREFERRED_HEIGHT / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(
bitmap, 0, 0, width, height, matrix, false);
bitmap.recycle();
return resizedBitmap;
}
代码实际上将图像大小调整为250/250,然后再将其转换为Base64。
private static final float PREFERRED_WIDTH = 250;
private static final float PREFERRED_HEIGHT = 250;
只需将其更改为文件顶部的内容,或完全删除调整大小调用即可。