Commit 905c2635 by 罗翻

增加人脸识别

parent 5b0d1c4f
...@@ -80,6 +80,51 @@ public class ConUtil { ...@@ -80,6 +80,51 @@ public class ConUtil {
return null; return null;
} }
/**
* 根据byte数组,生成文件
*/
public static File saveJPG(Context mContext, byte[] data, String key) {
if (data == null)
return null;
File mediaStorageDir = mContext.getExternalFilesDir(Constant.cacheImage);
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
BufferedOutputStream bos = null;
FileOutputStream fos = null;
try {
String jpgFileName = System.currentTimeMillis() + "" + new Random().nextInt(1000000) + "_" + key + ".jpg";
fos = new FileOutputStream(mediaStorageDir + "/" + jpgFileName);
bos = new BufferedOutputStream(fos);
bos.write(data);
return mediaStorageDir;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
return null;
}
public static void copyModels(Context context) { public static void copyModels(Context context) {
File dstModelFile = new File(context.getExternalFilesDir(null), "model"); File dstModelFile = new File(context.getExternalFilesDir(null), "model");
if (dstModelFile.exists()) { if (dstModelFile.exists()) {
...@@ -183,8 +228,7 @@ public class ConUtil { ...@@ -183,8 +228,7 @@ public class ConUtil {
/** /**
* 读取图片属性:旋转的角度 * 读取图片属性:旋转的角度
* *
* @param path * @param path 图片绝对路径
* 图片绝对路径
* @return degree旋转的角度 * @return degree旋转的角度
*/ */
public static int readPictureDegree(String path) { public static int readPictureDegree(String path) {
......
...@@ -112,9 +112,9 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa ...@@ -112,9 +112,9 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
if (mDisposable != null) { // if (mDisposable != null) {
mDisposable.dispose(); // mDisposable.dispose();
} // }
} }
@TargetApi(23) @TargetApi(23)
......
...@@ -13,6 +13,8 @@ import com.dayu.message.databinding.ActivityMessageDetailBinding; ...@@ -13,6 +13,8 @@ import com.dayu.message.databinding.ActivityMessageDetailBinding;
import com.dayu.provider.common.ProviderConstant; import com.dayu.provider.common.ProviderConstant;
import com.dayu.provider.router.RouterPath; import com.dayu.provider.router.RouterPath;
import com.dayu.utils.GsonUtils; import com.dayu.utils.GsonUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UtilsDate; import com.dayu.utils.UtilsDate;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
...@@ -39,6 +41,10 @@ public class MessageDetailActivity extends DataBindingActivity<ActivityMessageDe ...@@ -39,6 +41,10 @@ public class MessageDetailActivity extends DataBindingActivity<ActivityMessageDe
public void initView() { public void initView() {
mBind.tvTitle.setText(getString(R.string.message_dayu_detail)); mBind.tvTitle.setText(getString(R.string.message_dayu_detail));
Bundle bundle = mActivity.getIntent().getBundleExtra(Constants.BUNDLE); Bundle bundle = mActivity.getIntent().getBundleExtra(Constants.BUNDLE);
if(bundle==null){
ToastUtils.showShortToast(UIUtils.getString(R.string.get_info_failed));
return;
}
message = (NewMessage) bundle.getSerializable(Constants.HX_MESSAGE); message = (NewMessage) bundle.getSerializable(Constants.HX_MESSAGE);
mCategory = bundle.getInt("category", 1); mCategory = bundle.getInt("category", 1);
String time = null; String time = null;
......
...@@ -12,13 +12,15 @@ import com.dayu.usercenter.R; ...@@ -12,13 +12,15 @@ import com.dayu.usercenter.R;
import com.dayu.usercenter.databinding.ActivityFaceCertificationBinding; import com.dayu.usercenter.databinding.ActivityFaceCertificationBinding;
import com.dayu.usercenter.presenter.facecertification.FaceCertificaitonContract; import com.dayu.usercenter.presenter.facecertification.FaceCertificaitonContract;
import com.dayu.usercenter.presenter.facecertification.FaceCertificaitonPresenter; import com.dayu.usercenter.presenter.facecertification.FaceCertificaitonPresenter;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.ToastUtils; import com.dayu.utils.ToastUtils;
import com.megvii.idcardlib.LivenessActivity; import com.megvii.idcardlib.LivenessActivity;
import com.megvii.idcardlib.util.ConUtil; import com.megvii.idcardlib.util.ConUtil;
import com.megvii.licensemanager.Manager; import com.megvii.licensemanager.Manager;
import com.megvii.livenessdetection.LivenessLicenseManager; import com.megvii.livenessdetection.LivenessLicenseManager;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
...@@ -94,23 +96,52 @@ public class FaceCertificationActivity extends BaseActivity<FaceCertificaitonPre ...@@ -94,23 +96,52 @@ public class FaceCertificationActivity extends BaseActivity<FaceCertificaitonPre
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PAGE_INTO_LIVENESS && resultCode == RESULT_OK) { if (requestCode == PAGE_INTO_LIVENESS && resultCode == RESULT_OK) {
boolean isSuccess = false;
String delta = data.getStringExtra("delta"); String delta = data.getStringExtra("delta");
int code = data.getIntExtra("resultcode", 0); int code = data.getIntExtra("resultcode", 0);
String str = data.getStringExtra("result");
try {
JSONObject result = new JSONObject(str);
int resID = result.getInt("resultcode");
checkID(resID);
isSuccess = result.getString("result").equals(
getResources().getString(R.string.verify_success));
} catch (JSONException e) {
e.printStackTrace();
}
if (isSuccess) {
Map<String, byte[]> images = (Map<String, byte[]>) data.getSerializableExtra("images"); Map<String, byte[]> images = (Map<String, byte[]>) data.getSerializableExtra("images");
ArrayList<File> list = new ArrayList<>(); ArrayList<File> list = new ArrayList<>();
byte[] image_best = images.get("image_best"); byte[] image_best = images.get("image_best");
byte[] image_env = images.get("image_env"); byte[] image_env = images.get("image_env");
byte[] image_action1 = images.get("imageAction1"); byte[] image_action1 = images.get("image_action1");
byte[] image_action2 = images.get("imageAction2"); byte[] image_action2 = images.get("image_action2");
byte[] image_action3 = images.get("imageAction3"); byte[] image_action3 = images.get("image_action3");
list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_best, 0, image_best.length), "best")); BitmapFactory.Options options = new BitmapFactory.Options();
list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_env, 0, image_best.length), "env")); options.inSampleSize = 2;
list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_action1, 0, image_best.length), "action1")); list.add(ConUtil.saveJPG(mActivity, image_best, "image_best"));
list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_action2, 0, image_best.length), "action2")); list.add(ConUtil.saveJPG(mActivity, image_env, "image_env"));
list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_action3, 0, image_best.length), "action3")); list.add(ConUtil.saveJPG(mActivity, image_action1, "image_action1"));
list.add(ConUtil.saveJPG(mActivity, image_action2, "image_action2"));
list.add(ConUtil.saveJPG(mActivity, image_action3, "image_action3"));
// list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_best, 0, image_best.length, options), "best"));
// list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_env, 0, image_best.length, options), "env"));
// list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_action1, 0, image_best.length, options), "action1"));
// list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_action2, 0, image_best.length, options), "action2"));
// list.add(GlideImageLoader.compressImage(BitmapFactory.decodeByteArray(image_action3, 0, image_best.length, options), "action3"));
mPresenter.commitePhoto(list, delta); mPresenter.commitePhoto(list, delta);
} }
} }
}
private void checkID(int resID) {
if (resID == R.string.verify_success) {
} else if (resID == R.string.liveness_detection_failed_not_video) {
} else if (resID == R.string.liveness_detection_failed_timeout) {
} else if (resID == R.string.liveness_detection_failed) {
} else {
}
}
@Override @Override
public void setPresenter() { public void setPresenter() {
......
...@@ -89,6 +89,7 @@ public class IdentityCertificationActivity extends BaseActivity<CertificaitonPre ...@@ -89,6 +89,7 @@ public class IdentityCertificationActivity extends BaseActivity<CertificaitonPre
mBind.rlNext.setClickable(false); mBind.rlNext.setClickable(false);
mBind.ivSideDelete.setVisibility(View.GONE); mBind.ivSideDelete.setVisibility(View.GONE);
}); });
mBind.rlNext.setOnClickListener(v->mPresenter.commitePhoto());
mBind.ivNext.setAlpha(0.5f); mBind.ivNext.setAlpha(0.5f);
mBind.rlNext.setClickable(false); mBind.rlNext.setClickable(false);
...@@ -161,8 +162,10 @@ public class IdentityCertificationActivity extends BaseActivity<CertificaitonPre ...@@ -161,8 +162,10 @@ public class IdentityCertificationActivity extends BaseActivity<CertificaitonPre
if (requestCode == INTO_IDCARDSCAN_PAGE && resultCode == RESULT_OK) { if (requestCode == INTO_IDCARDSCAN_PAGE && resultCode == RESULT_OK) {
runOnUiThread(() -> { runOnUiThread(() -> {
byte[] idcardImgData = data.getByteArrayExtra("idcardImg"); byte[] idcardImgData = data.getByteArrayExtra("idcardImg");
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap idcardBmp = BitmapFactory.decodeByteArray(idcardImgData, 0, Bitmap idcardBmp = BitmapFactory.decodeByteArray(idcardImgData, 0,
idcardImgData.length); idcardImgData.length,options);
if (mSide == 0) { if (mSide == 0) {
mFrontBitmap = idcardBmp; mFrontBitmap = idcardBmp;
mBind.ivFront.setImageBitmap(idcardBmp); mBind.ivFront.setImageBitmap(idcardBmp);
......
...@@ -101,8 +101,7 @@ ...@@ -101,8 +101,7 @@
android:id="@+id/rl_next" android:id="@+id/rl_next"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="47dp" android:layout_height="47dp"
android:layout_marginBottom="54dp" android:layout_marginBottom="54dp">
android:onClick="@{()->presenter.commitePhoto()}">
<ImageView <ImageView
android:id="@+id/iv_next" android:id="@+id/iv_next"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment