您的位置:首页 > 移动开发 > Android开发

Zxing图片纵向拉伸问题 Android 二维码扫描

2017-02-13 14:08 447 查看
在测试ZXing提供的二维码扫描是出现了图片拉伸情况

查阅资料后发现

Zxing是google提供的二维码扫描工程

源码默认是横屏状态, 在我们使用竖屏,摄像图片出现拉伸现象。

这里提供修改办法二维码扫描 

Android Zxing图片拉伸解决:

在Zxing 的CameraConfigurationManager.java 的

void initFromCameraParameters(Camera camera)方法修改

修改X轴Y轴。

Point screenResolutionForCamera = new Point();
screenResolutionForCamera.x = screenResolution.x;
screenResolutionForCamera.y = screenResolution.y;
// preview size is always something like 480*320, other 320*480
if (screenResolution.x < screenResolution.y) {
screenResolutionForCamera.x = screenResolution.y;
screenResolutionForCamera.y = screenResolution.x;
}

/**
* Reads, one time, values from the camera that are needed by the app.
*/
void initFromCameraParameters(Camera camera) {
Camera.Parameters parameters = camera.getParameters();
previewFormat = parameters.getPreviewFormat();
previewFormatString = parameters.get("preview-format");
Log.d(TAG, "Default preview format: " + previewFormat + '/' + previewFormatString);
WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
screenResolution = new Point(display.getWidth(), display.getHeight());
Log.d(TAG, "Screen resolution: " + screenResolution);
/***by wrz 20170213 new****/
Point screenResolutionForCamera = new Point();
screenResolutionForCamera.x = screenResolution.x;
screenResolutionForCamera.y = screenResolution.y;
// preview size is always something like 480*320, other 320*480
if (screenResolution.x < screenResolution.y) {
screenResolutionForCamera.x = screenResolution.y;
screenResolutionForCamera.y = screenResolution.x;
}
cameraResolution = getCameraResolution(parameters, screenResolutionForC
4000
amera);
/***by wrz 20170213 new end****/
// cameraResolution = getCameraResolution(parameters, screenResolution); //by wrz 修改 20170213

Log.d(TAG, "Camera resolution: " + screenResolution);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: