示例#1
0
        // Create a default HightlightView if we found no face in the picture.
        private void makeDefault() {
          HighlightView hv = new HighlightView(mImageView);

          int width = mBitmap.getWidth();
          int height = mBitmap.getHeight();

          Rect imageRect = new Rect(0, 0, width, height);

          // REMOVED: make the default size about 4/5 of the width or height//* 4 / 5;
          int cropWidth = Math.min(width, height);

          int cropHeight = cropWidth;

          if (mAspectX != 0 && mAspectY != 0) {
            if (mAspectX > mAspectY) {
              cropHeight = cropWidth * mAspectY / mAspectX;
            } else {
              cropWidth = cropHeight * mAspectX / mAspectY;
            }
          }

          int x = (width - cropWidth) / 2;
          int y = (height - cropHeight) / 2;

          RectF cropRect = new RectF(x, y, x + cropWidth, y + cropHeight);
          hv.setup(mImageMatrix, imageRect, cropRect, mCircleCrop, mAspectX != 0 && mAspectY != 0);

          mImageView.mHighlightViews.clear(); // Thong added for rotate

          mImageView.add(hv);
        }
示例#2
0
        // For each face, we create a HightlightView for it.
        private void handleFace(FaceDetector.Face f) {
          PointF midPoint = new PointF();

          int r = ((int) (f.eyesDistance() * mScale)) * 2;
          f.getMidPoint(midPoint);
          midPoint.x *= mScale;
          midPoint.y *= mScale;

          int midX = (int) midPoint.x;
          int midY = (int) midPoint.y;

          HighlightView hv = new HighlightView(mImageView);

          int width = mBitmap.getWidth();
          int height = mBitmap.getHeight();

          Rect imageRect = new Rect(0, 0, width, height);

          RectF faceRect = new RectF(midX, midY, midX, midY);
          faceRect.inset(-r, -r);
          if (faceRect.left < 0) {
            faceRect.inset(-faceRect.left, -faceRect.left);
          }

          if (faceRect.top < 0) {
            faceRect.inset(-faceRect.top, -faceRect.top);
          }

          if (faceRect.right > imageRect.right) {
            faceRect.inset(faceRect.right - imageRect.right, faceRect.right - imageRect.right);
          }

          if (faceRect.bottom > imageRect.bottom) {
            faceRect.inset(faceRect.bottom - imageRect.bottom, faceRect.bottom - imageRect.bottom);
          }

          hv.setup(mImageMatrix, imageRect, faceRect, mCircleCrop, mAspectX != 0 && mAspectY != 0);

          mImageView.add(hv);
        }