From 0a397f834382491316d9efe993ebb89757c000b9 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 28 四月 2017 16:16:09 +0800
Subject: [PATCH]
---
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java | 4
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java | 1
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/NativeImg.java | 15 +++++
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml | 5 +
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/BitmapUtil.java | 29 +++++++++
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml | 2
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java | 5 +
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml | 7 +
VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so | 0
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java | 57 ++++++++++++-------
10 files changed, 95 insertions(+), 30 deletions(-)
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
index c39767f..d333a80 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
@@ -18,6 +18,7 @@
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.fragment.*;
import cn.com.basic.face.util.AppApi;
+import cn.com.basic.face.util.BitmapUtil;
import cn.com.basic.face.util.Constant;
import cn.com.basic.face.util.WindowsUtil;
@@ -67,7 +68,7 @@
RelativeLayout mLayout = holder.findViewById(R.id.fragment_home_bottom_register_cell_relative_layout);
ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams();
layoutParams.height = WindowsUtil.dip2px(context, 127);
- layoutParams.width = WindowsUtil.dip2px(context, 104);
+ layoutParams.width = WindowsUtil.dip2px(context, 122);
mLayout.setLayoutParams(layoutParams);
final Object data = this.getItem(position);
@@ -110,7 +111,7 @@
RelativeLayout mLayout = holder.findViewById(R.id.fragment_supervisory_bottom_visitor_cell_relative_layout);
ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams();
layoutParams.height = WindowsUtil.dip2px(context, 127);
- layoutParams.width = WindowsUtil.dip2px(context, 104);
+ layoutParams.width = WindowsUtil.dip2px(context, 122);
mLayout.setLayoutParams(layoutParams);
ImageView fragment_home_bottom_visitor_cell_photo = (ImageView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_photo);
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
index 049e175..034e2f6 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
@@ -189,6 +189,7 @@
params.addBodyParameter("width", surveillanceQueryItem.getWidth());
params.addBodyParameter("height", surveillanceQueryItem.getHeight());
params.addBodyParameter("base64Image", surveillanceQueryItem.getBase64Image());
+ fragment_register_surveillance_photo_img = surveillanceQueryItem.getBitmap();
}
if (fragment_register_surveillance_photo_img != null) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
index 0b849c3..97d3332 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
@@ -80,8 +80,8 @@
List<SurveillanceQueryItem> checkInList = new ArrayList<SurveillanceQueryItem>();
removeDuplicateCheckIn(list);
int i1 = 0, j = 0;
- int maxRegister = 20;
- int maxCheckIn = 20;
+ int maxRegister = 50;
+ int maxCheckIn = 50;
for (SurveillanceQueryItem item : list) {
if (item.getRegisterOrCheckIn() == Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE) {
if (i1 < maxRegister) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/BitmapUtil.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/BitmapUtil.java
index 519521d..9f32ab5 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/BitmapUtil.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/BitmapUtil.java
@@ -6,6 +6,9 @@
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
+import android.graphics.RectF;
+
+import cn.com.basic.face.base.MainActivity;
public class BitmapUtil {
@@ -30,4 +33,30 @@
return output;
}
+ public static Bitmap getCornerBitmap(Bitmap bitmap) {
+ int min = bitmap.getWidth() > bitmap.getHeight() ? bitmap.getHeight() : bitmap.getWidth();
+
+ int width = bitmap.getWidth();
+ int height = bitmap.getHeight();
+
+ Bitmap output = Bitmap.createBitmap(width,
+ height, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(output);
+
+ final int color = 0xff424242;
+ final Paint paint = new Paint();
+ final RectF rectF = new RectF(0, 0, width, height);
+ final Rect rect = new Rect(0, 0, width, height);
+
+ paint.setAntiAlias(true);
+ canvas.drawARGB(0, 0, 0, 0);
+ paint.setColor(color);
+ //canvas.drawCircle(min / 2, min / 2, min / 2, paint);
+ canvas.drawRoundRect(rectF, 333, 333, paint);
+ paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
+ canvas.drawBitmap(bitmap, rect, rect, paint);
+
+ return output;
+ }
+
}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/NativeImg.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/NativeImg.java
new file mode 100644
index 0000000..1bf70be
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/NativeImg.java
@@ -0,0 +1,15 @@
+package cn.com.basic.face.util;
+
+/**
+ * Created by houxiao on 2017/4/24.
+ */
+
+public class NativeImg {
+
+ public int size;
+ public int type;
+ public int width;
+ public int height;
+ public byte[] image;
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java
index 2d6c4af..799349e 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java
@@ -11,6 +11,7 @@
import java.util.ArrayList;
import java.util.List;
+import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.fragment.RegisterFragment;
@@ -34,15 +35,6 @@
public byte[][] arr2;
}
-class NativeImg
-{
- public int size;
- public int type;
- public int width;
- public int height;
- public byte[] image;
-}
-
public class RtspFaceNative {
@@ -57,23 +49,36 @@
public static native boolean setFaceCallback(int cameraIdx, String className, String funcName);
public static native void lockFace(int cameraIdx);
public static native void releaseFace(int cameraIdx);
- public static native int getFaceList(int cameraIdx, RefByteArray faceListPb);
+ public static native int getFaceList(int cameraIdx, int dbId, RefByteArray faceListPb);
//public static native ArrayList<NativeImgIdx> getFaceImages(int cameraIdx, RefByteArray faceImages);
public static native ArrayList<NativeImg> getFaceImages(int cameraIdx);
- public static void faceCallBack(int cameraInOrOut, int count)
+ public static native void dbgFaceAdd(NativeImg faceImage);
+ public static native String dbgGetLog();
+
+
+ public static int COMPANY_ID = 1001;
+
+ public static void faceCallBack(int cameraIdx, int count)
{
- Log.i("@@@", "RtspFaceNative.faceCallBack, cameraIdx=" + cameraInOrOut + ", count=" + count);
+ Log.i("@@@", "RtspFaceNative.faceCallBack, cameraIdx=" + cameraIdx + ", count=" + count);
// something else
if (count <= 0)
return;
- lockFace(cameraInOrOut);
+ lockFace(cameraIdx);
RefByteArray faceListPb = new RefByteArray();
- int s = getFaceList(cameraInOrOut, faceListPb);
- Log.i("@@@", "RtspFaceNative.faceCallBack, getFaceList, cameraIdx=" + cameraInOrOut + ", size=" + s);
+
+ try {
+ COMPANY_ID = Integer.parseInt(BaseApplication.getInstance().getDevice().getDeviceCompanyId());
+ } catch (Exception e) {
+ COMPANY_ID = 0;
+ }
+
+ int s = getFaceList(cameraIdx, COMPANY_ID, faceListPb);
+ Log.i("@@@", "RtspFaceNative.faceCallBack, getFaceList, cameraIdx=" + cameraIdx + ", size=" + s);
//RefByteArray faceImages = new RefByteArray();
//ArrayList<NativeImgIdx> faceImagesIdx = getFaceImages(cameraIdx, faceImages);
@@ -82,21 +87,31 @@
// c = faceImagesIdx.size();
//Log.i("@@@", "RtspFaceNative.faceCallBack, getFaceImages, cameraIdx=" + cameraIdx + ", count=" + c);
- ArrayList<NativeImg> faceImages = getFaceImages(cameraInOrOut);
+ ArrayList<NativeImg> faceImages = getFaceImages(cameraIdx);
int c = 0;
if (faceImages != null)
c = faceImages.size();
- Log.i("@@@", "RtspFaceNative.faceCallBack, getFaceImages, cameraIdx=" + cameraInOrOut + ", count=" + c);
+ Log.i("@@@", "RtspFaceNative.faceCallBack, getFaceImages, cameraIdx=" + cameraIdx + ", count=" + c);
for (int i = 0; i < c; i++)
{
- Log.i("@@@", "cameraIdx=" + cameraInOrOut +
+ Log.i("@@@", "cameraIdx=" + cameraIdx +
", i=" + i +
", size=" + faceImages.get(i).size+
", w=" + faceImages.get(i).width +
", h=" + faceImages.get(i).height +
", image[0]=" + faceImages.get(i).image[0] +
", image[1]=" + faceImages.get(i).image[1]);
+
+ if (i == 0)
+ {
+ //Bitmap bitmap = Bitmap.createBitmap(faceImages.get(i).width, faceImages.get(i).height, Bitmap.Config.RGB_565);
+ //ByteBuffer byteBuffer = ByteBuffer.wrap(faceImages.get(i).image, 0, faceImages.get(i).size);
+ //bitmap.copyPixelsFromBuffer(byteBuffer);
+ //NativeCodec.setFaceDrawable(bitmap);
+
+ //NativeCodec.setFaceDrawable(faceImages.get(i));
+ }
}
try{
@@ -106,7 +121,7 @@
SurveillanceQueryItem surveillanceQueryItem = new SurveillanceQueryItem();
int offset = 0;
int size = item.size;
- Bitmap bitmap = Bitmap.createBitmap(item.width,item.height, Bitmap.Config.RGB_565);
+ Bitmap bitmap = Bitmap.createBitmap(item.width,item.height, Bitmap.Config.ARGB_8888);
ByteBuffer byteBuffer = ByteBuffer.wrap(item.image, offset, size);
bitmap.copyPixelsFromBuffer(byteBuffer);
surveillanceQueryItem.setBase64Image(Base64.encodeToString(item.image, offset, size, Base64.DEFAULT));
@@ -115,13 +130,13 @@
surveillanceQueryItem.setHeight(item.height+"");
bitmapList.add(surveillanceQueryItem);
}
- SurveillanceMng.getInstance().addBitmap(bitmapList, faceListPb.arr, s, cameraInOrOut+"");
+ SurveillanceMng.getInstance().addBitmap(bitmapList, faceListPb.arr, s, cameraIdx+"");
}catch(Exception e){
e.printStackTrace();
}
- releaseFace(cameraInOrOut);
+ releaseFace(cameraIdx);
}
}
diff --git a/VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so b/VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so
index e748501..c709114 100644
--- a/VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so
+++ b/VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so
Binary files differ
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
index d0bc6d7..bcce184 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
@@ -38,8 +38,8 @@
android:layout_weight="1"
>
<SurfaceView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="640px"
+ android:layout_height="480px"
android:id="@+id/fragment_supervisory_enter_camera" />
<RelativeLayout
android:layout_width="match_parent"
@@ -68,6 +68,7 @@
android:layout_marginRight="12dp"/>
</RelativeLayout>
</RelativeLayout>
+
<RelativeLayout
android:layout_width="@dimen/view_size_0"
android:layout_height="match_parent"
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml
index 633c4d3..9356184 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml
@@ -6,7 +6,7 @@
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/fragment_home_bottom_register_cell_photo"
- android:layout_width="104dp"
+ android:layout_width="122dp"
android:layout_height="127dp"
android:layout_alignParentBottom="true"
android:scaleType="centerCrop"
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml
index a9eb579..d0d285b 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml
@@ -2,12 +2,15 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_supervisory_bottom_visitor_cell_relative_layout"
android:layout_width="wrap_content"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ xmlns:fresco="http://schemas.android.com/apk/res-auto"
+ >
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/fragment_home_bottom_visitor_cell_photo"
- android:layout_width="104dp"
+ android:layout_width="122dp"
android:layout_height="127dp"
+ fresco:roundedCornerRadius="5dp"
android:layout_alignParentBottom="true"
android:scaleType="centerCrop"
/>
--
Gitblit v1.8.0