コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
                    }
                }
            }
        }