xuxiuxi
2017-04-28 0a397f834382491316d9efe993ebb89757c000b9


git-svn-id: http://192.168.1.226/svn/proxy@567 454eff88-639b-444f-9e54-f578c98de674
1个文件已添加
9个文件已修改
125 ■■■■ 已修改文件
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/BitmapUtil.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/NativeImg.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/RtspFaceNative.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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) {
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) {
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;
    }
}
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/NativeImg.java
New file
@@ -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;
}
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);
    }
}
VisitFace/DemoForBsk/app/src/main/jniLibs/armeabi-v7a/librtspface.so
Binary files differ
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"
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"
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"
        />