public Bitmap obrazwObrazie(daneUkrytyPlik daneUkryty, int bityRed, int bityGreen, int bityBlue) { bool stop = false; int przesuniecier = (8 - bityRed); int maskaWidocznar = 0xFF << bityRed; int maskaNiewidocznar = 0xFF >> przesuniecier; int przesuniecieg = (8 - bityGreen); int maskaWidocznag = 0xFF << bityGreen; int maskaNiewidocznag = 0xFF >> przesuniecieg; int przesuniecieb = (8 - bityBlue); int maskaWidocznab = 0xFF << bityBlue; int maskaNiewidocznab = 0xFF >> przesuniecieb; int wartoscq = 0, wartoscw = 0; for (int q = 0; q < this.img.Width; q++) { for (int w = 0; w < this.img.Height; w++) { Color pixel = this.img.GetPixel(q, w); if (wartoscw == daneUkryty.img.Height) { wartoscq++; wartoscw = 0; } if (wartoscq == daneUkryty.img.Width) { stop = true; break; } Color pixelend = daneUkryty.img.GetPixel(wartoscq, wartoscw); int r = (pixel.R & maskaWidocznar) + ((pixelend.R >> przesuniecier) & maskaNiewidocznar); int g = (pixel.G & maskaWidocznag) + ((pixelend.G >> przesuniecieg) & maskaNiewidocznag); int b = (pixel.B & maskaWidocznab) + ((pixelend.B >> przesuniecieb) & maskaNiewidocznab); this.img.SetPixel(q, w, Color.FromArgb(r, g, b)); wartoscw++; } if (stop) { break; } } return(this.img); }
public Bitmap tekstwObrazie(daneUkrytyPlik daneUkryty) { for (int q = 0; q < img.Width; q++) { for (int w = 0; w < img.Height; w++) { Color pixel = img.GetPixel(q, w); if (q < 1 && w < daneUkryty.bytes.Length) { char letter = Convert.ToChar(daneUkryty.bytes[w]); int value = Convert.ToInt32(letter); img.SetPixel(q, w, Color.FromArgb(pixel.R, pixel.G, value)); } if (q == img.Width - 1 && w == img.Height - 1) { img.SetPixel(q, w, Color.FromArgb(pixel.R, pixel.G, daneUkryty.bytes.Length)); } } } return(this.img); }
private void wybierzukryty_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); if (openFileDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = openFileDialog1.FileName.ToString(); bytes = File.ReadAllBytes(textBox1.Text); rozszerzenie = Path.GetExtension(textBox1.Text); if (Path.GetExtension(sciezka.Text) == ".wav") { rodzajwyjscie.Text = "Rodzaj pliku: " + rozszerzenie; bity = new StringBuilder(); bityRozszerzenie = new StringBuilder(); foreach (byte b in bytes) { bity.Append(Convert.ToString(b, 2).PadLeft(8, '0')); } foreach (char ch in rozszerzenie.Substring(1)) { bityRozszerzenie.Append(Convert.ToString((int)ch, 2).PadLeft(8, '0')); } daneukryty = new daneUkrytyPlik(File.ReadAllBytes(textBox1.Text), openFileDialog1.FileName.ToString(), Path.GetExtension(textBox1.Text) , bity, bityRozszerzenie); maxPojemnosc = (int)wave.sample * (Convert.ToInt32(comboBox4.SelectedItem.ToString())); pojemnoscNosnika = daneukryty.bity.Length; progressBar1.Maximum = Convert.ToInt32(maxPojemnosc); progressBar1.Value = Convert.ToInt32(pojemnoscNosnika); float pojemnoscProcenty = (float)Math.Round(((float)pojemnoscNosnika / (float)maxPojemnosc) * 100); if (daneukryty == null || daneukryty.bity.Length == 0 || daneukryty.bity == null) { procenty.Text = "0 %"; rozmiar.Text = "0 kB"; } else { procenty.Text = pojemnoscProcenty.ToString() + "%"; rozmiar.Text = Math.Round((Convert.ToDouble(maxPojemnosc) / 8) / 1024, 2) + " / " + Math.Round((Convert.ToDouble(pojemnoscNosnika) / 8) / 1024, 2); } } else if (Path.GetExtension(sciezka.Text) == ".png" || Path.GetExtension(sciezka.Text) == ".jpeg" || Path.GetExtension(sciezka.Text) == ".jpg") { rodzajwyjscie.Text = "Rodzaj pliku: " + rozszerzenie; bity = new StringBuilder(); bityRozszerzenie = new StringBuilder(); ukrytyZdjecie.ImageLocation = textBox1.Text; foreach (byte b in bytes) { bity.Append(Convert.ToString(b, 2).PadLeft(8, '0')); } foreach (char ch in rozszerzenie.Substring(1)) { bityRozszerzenie.Append(Convert.ToString((int)ch, 2).PadLeft(8, '0')); } if (rozszerzenie == ".png" || rozszerzenie == ".jpeg" || rozszerzenie == ".jpg") { daneukryty = new daneUkrytyPlik(File.ReadAllBytes(textBox1.Text), Path.GetExtension(textBox1.Text) , bity, bityRozszerzenie, new Bitmap(textBox1.Text)); } else { daneukryty = new daneUkrytyPlik(File.ReadAllBytes(textBox1.Text), openFileDialog1.FileName.ToString(), Path.GetExtension(textBox1.Text) , bity, bityRozszerzenie); } maxPojemnosc = img.Width * img.Height * (Convert.ToInt32(comboBox1.SelectedItem.ToString()) + Convert.ToInt32(comboBox2.SelectedItem.ToString()) + Convert.ToInt32(comboBox3.SelectedItem.ToString())); pojemnoscNosnika = daneukryty.bity.Length; progressBar1.Maximum = Convert.ToInt32(maxPojemnosc); progressBar1.Value = Convert.ToInt32(pojemnoscNosnika); float pojemnoscProcenty = (float)Math.Round(((float)pojemnoscNosnika / (float)maxPojemnosc) * 100); if (daneukryty == null || daneukryty.bity.Length == 0 || daneukryty.bity == null) { procenty.Text = "0 %"; rozmiar.Text = "0 kB"; } else { procenty.Text = pojemnoscProcenty.ToString() + "%"; rozmiar.Text = Math.Round((Convert.ToDouble(maxPojemnosc) / 8) / 1024, 2) + " / " + Math.Round((Convert.ToDouble(pojemnoscNosnika) / 8) / 1024, 2); label10.Text = Math.Round(Convert.ToDouble(((img.Width * img.Height * 24) / 8) / 1024), 2).ToString(); } } } }