示例#1
0
        private static FaceFrame CropFaceToExtractor(StoredFace face, System.Drawing.Image frameImage)
        {
            StoredFace storedFace = face;
            FaceInfo   faceInfo   = face.FaceInfo;

            using (Bitmap image = new Bitmap(storedFace.Width, storedFace.Height))
            {
                using (Graphics graphics = Graphics.FromImage((System.Drawing.Image)image))
                {
                    graphics.InterpolationMode = InterpolationMode.High;
                    graphics.DrawImage(frameImage, new RectangleF(0.0f, 0.0f, (float)storedFace.Width, (float)storedFace.Height), new RectangleF((float)storedFace.XPos, (float)storedFace.YPos, (float)storedFace.Width, (float)storedFace.Height), GraphicsUnit.Pixel);
                }
                using (Bitmap bmp = Grayscale.CommonAlgorithms.Y.Apply(image))
                {
                    TS.Core.Model.Rectangle faceRectangle = faceInfo.FaceRectangle;
                    FaceFrame faceFrame1 = new FaceFrame();
                    faceFrame1.Frame   = JpegCompression.ConvertToJpeg(bmp, 70);
                    faceFrame1.FrameId = storedFace.FrameId;
                    FaceFrame faceFrame2 = faceFrame1;
                    FaceData  faceData1  = new FaceData();
                    faceData1.DetectionProb = (float)faceInfo.DetectionProbability;
                    faceData1.Width         = (int)faceRectangle.Width;
                    faceData1.Height        = (int)faceRectangle.Height;
                    faceData1.LeftX         = (int)faceRectangle.X - storedFace.XPos;
                    faceData1.LeftY         = (int)faceRectangle.Y - storedFace.YPos;
                    FaceData            faceData2 = faceData1;
                    TS.Core.Model.Point point     = faceInfo.LeftEye;
                    int num1 = (int)point.X - storedFace.XPos;
                    faceData2.LeftEyeX = num1;
                    FaceData faceData3 = faceData1;
                    point = faceInfo.RightEye;
                    int num2 = (int)point.X - storedFace.XPos;
                    faceData3.RightEyeX = num2;
                    FaceData faceData4 = faceData1;
                    point = faceInfo.LeftEye;
                    int num3 = (int)point.Y - storedFace.YPos;
                    faceData4.LeftEyeY = num3;
                    FaceData faceData5 = faceData1;
                    point = faceInfo.RightEye;
                    int num4 = (int)point.Y - storedFace.YPos;
                    faceData5.RightEyeY = num4;
                    FaceData faceData6 = faceData1;
                    faceFrame2.Face = faceData6;
                    return(faceFrame1);
                }
            }
        }
示例#2
0
        private static byte[] GetFrameBytes(CS.VideoSources.Core.VideoFrame frame)
        {
            Bitmap image = frame.Image;

            if (image == null)
            {
                return((byte[])null);
            }
            byte[] numArray;
            if (image.PixelFormat == PixelFormat.Format8bppIndexed)
            {
                numArray = JpegCompression.ConvertToJpeg(image, 70);
            }
            else
            {
                using (Bitmap bmp = Grayscale.CommonAlgorithms.Y.Apply(image))
                    numArray = JpegCompression.ConvertToJpeg(bmp, 70);
            }
            return(numArray);
        }
示例#3
0
 private static byte[] ConvertIfNeeded(Bitmap image, byte[] bytes)
 {
     return(object.Equals((object)ImageFormatHelper.TryGetFormatBySignature(bytes), (object)ImageFormat.Jpeg) ? bytes : JpegCompression.ConvertToJpeg(image, 70));
 }