我想锁定相机分辨率以拍摄640x480像素的照片,我可以这样做吗?
这需要完成'因为大于640x480的照片会使它们显得很慢,有时甚至会使我的应用程序崩溃。
如果无法做到这一点,有一些方法可以在SD卡上调整我的图片大小吗?
答案 0 :(得分:3)
您可以在将图片保存到SD卡之前调整图片大小。在代码中,像这样:
Bitmap smallBitmap = Bitmap.createScaledBitmap(sourceBitmap, 640, 480, true);
并且在调整大小后用代码保存它我猜你已经为保存而写了..
如果你需要提供字节数组而不是Bitmap来保存,你可以使用:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bMap.compress(CompressFormat.JPEG, 100, bos); // setup jpeg quality here
byte[] data = bos.toByteArray();
希望它有所帮助。 干杯
答案 1 :(得分:0)
您可以尝试获得最低分辨率
private Camera.Size getBestPreviewSize(int width, int height,Camera.Parameters parameters)
{
Camera.Size result=null;
for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
if (size.width <= width && size.height <= height) {
if (result == null) {
result=size;
}
else {
int resultArea=result.width * result.height;
int newArea=size.width * size.height;
if (newArea > resultArea) {
result=size;
}
}
}
}
return(result);
}
或者以你想要的分辨率停止循环。
取自here(commonsguy github)