public override Bitmap GetNextGraphic(Screen target) { Image source = Image.FromFile(_filesPaths[_pos]); Bitmap newImage = new Bitmap(Screen.Width, Screen.Height); using (Graphics gr = Graphics.FromImage(newImage)) { gr.SmoothingMode = SmoothingMode.HighQuality; gr.InterpolationMode = InterpolationMode.HighQualityBilinear; gr.PixelOffsetMode = PixelOffsetMode.HighQuality; gr.Clear(Color.White); var points = GraphicHelper.ComputeTargetPoints(new Size(Screen.Width, Screen.Height), new Size(source.Width, source.Height), target.Rotation); //gr.DrawPolygon(new Pen(Color.Crimson),points ); gr.DrawImage(source, points); gr.Save(); } _pos++; if (_pos >= _filesPaths.Length) { _pos = 0; } return(newImage); }
private void btnPrintPreview_Click(object sender, RoutedEventArgs e) { Screen screen = (Screen)cmbxScreenList.SelectedItem; Bitmap bmp = new Bitmap(txtbPreviewPath.Text); Point[] points = GraphicHelper.ComputeTargetPoints(new Size(800, 601), new Size(bmp.Width, bmp.Height), Rotation.DEG_0); Bitmap bmpResized = new Bitmap(800, 601); using (Graphics gr = Graphics.FromImage(bmpResized)) { gr.DrawImage(bmp, points); } grayData = GrayScaleConverter.ConvertToGrayscale(bmpResized, GrayScaleConverter.ConvertionMethod.AverageBT601, 8); grayData = GrayScaleConverter.DitherSierraLight(grayData, 8, bmpResized.Width, bmpResized.Height); grayData = GrayScaleConverter.ReverseGrayScale(grayData, 8); grayData = GrayScaleConverter.CompactArray(grayData, 8); screen.SendImageBuffer(8, grayData); screen.DrawBuffer(); }