Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Security.Cryptography;
- using System.Drawing.Imaging;
- namespace G {
- public partial class Controller : Form {
- public Controller() {
- InitializeComponent();
- }
- private MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
- private ImageConverter c = new ImageConverter();
- private FrameX f = null;
- private void Controller_Load(object sender, EventArgs e) {
- f = new FrameX(this);
- f.Visible = true;
- }
- private void setCam(object sender, EventArgs e) {
- f.r = new Rectangle( //
- Int32.Parse(this.Kt.Text), Int32.Parse(this.Kl.Text), //
- Int32.Parse(this.Kx.Text), Int32.Parse(this.Ky.Text));
- f.Refresh();
- }
- public class FrameX : Form {
- private Form parent = null;
- public FrameX(Form parent) {
- this.parent = parent;
- this.SuspendLayout();
- this.FormBorderStyle = FormBorderStyle.None;
- this.TransparencyKey = System.Drawing.SystemColors.Control;
- this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
- this.Paint += new System.Windows.Forms.PaintEventHandler(this.Frame_Paint);
- this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Frame_MouseClick);
- this.Enabled = false;
- this.ResumeLayout(false);
- }
- private void Frame_MouseClick(object sender, MouseEventArgs e) {
- this.parent.Focus();
- }
- public Rectangle r = new Rectangle(151, 181, 640, 360);
- private const int w = 3;
- private void Frame_Paint(object sender, PaintEventArgs e) {
- using (Graphics g = e.Graphics)
- using (Pen p = new Pen(Color.Black, w))
- using (Brush b = new SolidBrush(SystemColors.Control))
- {
- g.Clear(SystemColors.GrayText);
- g.DrawRectangle(p, r.X - w + 1, r.Y - w + 1, r.Width + w, r.Height + w);
- g.FillRectangle(b, r);
- }
- }
- }
- private void isCamVisible_CheckedChanged(object sender, EventArgs e) {
- this.Deactivate -= new System.EventHandler(this.Controller_Deactivate);
- f.Visible = this.isCamVisible.Checked;
- this.Deactivate += new System.EventHandler(this.Controller_Deactivate);
- this.Focus();
- }
- private void Controller_Deactivate(object sender, EventArgs e) {
- this.isCamVisible.Checked=false;
- }
- private void doValidating(object sender, CancelEventArgs e) {
- TextBox p = (TextBox)sender;
- int nr = Int32.Parse(p.Text);
- errorProvider1.SetError(p, (nr < 0 || nr > 1000 ? "Off bounds." : ""));
- }
- private Bitmap getContentBitmap() {
- Rectangle r = f.r;
- Bitmap hc = new Bitmap(r.Width, r.Height);
- using (Graphics gf = Graphics.FromImage(hc)) {
- gf.CopyFromScreen(r.Left, r.Top, 0, 0, //
- new Size(r.Width, r.Height), CopyPixelOperation.SourceCopy);
- }
- return hc;
- }
- private byte[] getBitmapHash(Bitmap hc) {
- return md5.ComputeHash(c.ConvertTo(hc, typeof(byte[])) as byte[]);
- }
- public static Bitmap getGrayscale(Bitmap hc){
- Bitmap result = new Bitmap(hc.Width, hc.Height);
- ColorMatrix colorMatrix = new ColorMatrix(new float[][]{
- new float[]{0.5f,0.5f,0.5f,0,0}, new float[]{0.5f,0.5f,0.5f,0,0},
- new float[]{0.5f,0.5f,0.5f,0,0}, new float[]{0,0,0,1,0,0},
- new float[]{0,0,0,0,1,0}, new float[]{0,0,0,0,0,1}});
- using (Graphics g = Graphics.FromImage(result)) {
- ImageAttributes attributes = new ImageAttributes();
- attributes.SetColorMatrix(colorMatrix);
- g.DrawImage(hc, new Rectangle(0, 0, hc.Width, hc.Height),
- 0, 0, hc.Width, hc.Height, GraphicsUnit.Pixel, attributes);
- }
- return result;
- }
- private void getHash_Click(object sender, EventArgs e) {
- DateTime a = DateTime.Now;
- Bitmap b = getContentBitmap();
- String o = String.Join(",", getBitmapHash(b));
- //getGrayscale(b).Save(@"C:\Users\Margus Martsepp\Desktop\out.png", ImageFormat.Png);
- DateTime l = DateTime.Now;
- Console.WriteLine(String.Format("Hash is: {0} [{1}ms]", o, (int)(l - a).TotalMilliseconds));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement