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); } } }
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); }
private static byte[] ConvertIfNeeded(Bitmap image, byte[] bytes) { return(object.Equals((object)ImageFormatHelper.TryGetFormatBySignature(bytes), (object)ImageFormat.Jpeg) ? bytes : JpegCompression.ConvertToJpeg(image, 70)); }