-
Notifications
You must be signed in to change notification settings - Fork 0
/
Form3.cs
106 lines (97 loc) · 3.65 KB
/
Form3.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Imaging;
using System.ComponentModel;
using System.Text.RegularExpressions;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
namespace tincoder
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
Form3 Form3 = this;
Form.CheckForIllegalCrossThreadCalls = false;
}
private static Bitmap encodedImage = new Bitmap(1,1);
private void button1_Click(object sender, System.EventArgs e)
{
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
this.Text = "Tincoder :: STARTING";
VecInt2 current = new VecInt2(0, 0);
List<char> chars = new List<char>();
while (true)
{
Color px = encodedImage.GetPixel(current.Val1, current.Val2);
if(checkBox1.Checked == false)
{
if (px.A == 0 && px.R == 0 && px.G == 0 && px.B == 0)
{
break;
}
}
chars.Add((char)px.A);
chars.Add((char)px.R);
chars.Add((char)px.G);
chars.Add((char)px.B);
if (checkBox2.Checked && checkBox4.Checked)
richTextBox1.Text = string.Join("", chars);
current.Val1++;
if (current.Val1 == encodedImage.Width)
{
if (checkBox3.Checked)
this.Text = "Tincoder :: " + current.Val1 + "/" + current.Val2;
if (checkBox2.Checked)
richTextBox1.Text = string.Join("", chars);
current.Val2++;
current.Val1 = 1;
if (current.Val2 == encodedImage.Height)
{
break;
}
}
if (checkBox3.Checked && checkBox4.Checked)
this.Text = "Tincoder :: " + current.Val1 + "/" + current.Val2;
}
richTextBox1.Text = string.Join("", chars);
this.Text = "Tincoder :: DONE";
}).Start();
}
private void button2_Click(object sender, EventArgs e)
{
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "JPEG Image files|*.jpg|PNG Image files|*.png|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
encodedImage = new Bitmap(myStream);
pictureBox1.Image = encodedImage;
myStream.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
private void button3_Click(object sender, EventArgs e)
{
Form2.backMenu = true;
this.Close();
}
}
}