@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_SELECT_IMAGE) { if (resultCode == RESULT_OK) { mBitmap = ImageHelper.loadSizeLimitedBitmapFromUri(data.getData(), getContentResolver()); if (mBitmap != null) { View originalFaces = findViewById(R.id.all_faces); originalFaces.setVisibility(View.VISIBLE); // Show the result of face grouping. ListView groupedFaces = (ListView) findViewById(R.id.grouped_faces); FaceGroupsAdapter faceGroupsAdapter = new FaceGroupsAdapter(null); groupedFaces.setAdapter(faceGroupsAdapter); // Put the image into an input stream for detection. ByteArrayOutputStream output = new ByteArrayOutputStream(); mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, output); ByteArrayInputStream inputStream = new ByteArrayInputStream(output.toByteArray()); setAllButtonsEnabledStatus(false); addLog("Request: Detecting in image " + data.getData()); // Start a background task to detect faces in the image. new DetectionTask().execute(inputStream); } } } }
public void addFaces(Face[] detectionResult) { if (detectionResult != null) { List<Face> detectedFaces = Arrays.asList(detectionResult); for (Face face : detectedFaces) { faces.add(face); try { Bitmap faceThumbnail = ImageHelper.generateFaceThumbnail(mBitmap, face.faceRectangle); faceThumbnails.add(faceThumbnail); faceIdThumbnailMap.put(face.faceId, faceThumbnail); } catch (IOException e) { // Show the exception when generating face thumbnail fails. TextView textView = (TextView) findViewById(R.id.info); textView.setText(e.getMessage()); } } } }