/**
* Resize, crop and rotate the camera preview frame
*
* @param bytes preview data
* @param width original width
* @param height original height
* @param params image processing parameters
* @return
*/
public static Bitmap rotateCropAndResizePreview(byte[] bytes, int width, int height, PreviewResizeParams params)
{
Size finalSize = new Size(params.newWidth, params.newHeight);
Rect cropRect = new Rect(params.cropX, params.cropY, params.cropWidth, params.cropHeight);
Mat rawMat = new Mat(height * 3 / 2, width, CvType.CV_8UC1); // YUV data
rawMat.put(0, 0, bytes);
Mat rgbMat = new Mat(height, width, CvType.CV_8UC4); // RGBA image
Imgproc.cvtColor(rawMat, rgbMat, Imgproc.COLOR_YUV2RGBA_NV21);
//rotate clockwise
Mat rotatedMat = rotateFrame(rgbMat, params.rotation);
//crop rect from image
Mat croppedMat = new Mat(rotatedMat, cropRect);
//resize
if (finalSize.area() > 0)
Imgproc.resize(croppedMat, croppedMat, finalSize);
Bitmap bmp = Bitmap.createBitmap(croppedMat.cols(), croppedMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(croppedMat, bmp);
return bmp;
}
ImagingUtils.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:android-imaging-utils
作者:
评论列表
文章目录