Example #1
0
 private void performSteganographyPerVertex(Vertex v, ByteWriteHelper writeHelper)
 {
     if (!writeHelper.HasData())
     {
         return;
     }
     v.X = performSteganographyPerFloat(writeHelper.GetAndMoveCurrentBit(), v.X);
     if (!writeHelper.HasData())
     {
         return;
     }
     v.Y = performSteganographyPerFloat(writeHelper.GetAndMoveCurrentBit(), v.Y);
     if (!writeHelper.HasData())
     {
         return;
     }
     v.Z = performSteganographyPerFloat(writeHelper.GetAndMoveCurrentBit(), v.Z);
 }
Example #2
0
        private bool performStenography(byte[] data)
        {
            ByteWriteHelper writeHelper = new ByteWriteHelper(checkBox1.Checked, textBox4.Text);

            writeHelper.AppendData(new byte[] { 0x77, 0 }); //Magic byte, version
            writeHelper.AppendData(BitConverter.GetBytes(data.Length));
            writeHelper.AppendData(data);
            writeHelper.FinalizeData();

            List <Triangle>             triangles     = new List <Triangle>();
            Dictionary <Vertex, Vertex> knownVertices = new Dictionary <Vertex, Vertex>();

            foreach (Triangle tri in reader.ReadFromFile(PathRead))
            {
                if (writeHelper.HasData())
                {
                    if (!(knownVertices.ContainsKey(tri.V1)))
                    {
                        Vertex tmp = new Vertex(tri.V1);
                        performSteganographyPerVertex(tri.V1, writeHelper);
                        knownVertices.Add(tmp, new Vertex(tri.V1));
                    }
                    if (!(knownVertices.ContainsKey(tri.V2)))
                    {
                        Vertex tmp = new Vertex(tri.V2);
                        performSteganographyPerVertex(tri.V2, writeHelper);
                        knownVertices.Add(tmp, new Vertex(tri.V2));
                    }
                    if (!(knownVertices.ContainsKey(tri.V3)))
                    {
                        Vertex tmp = new Vertex(tri.V3);
                        performSteganographyPerVertex(tri.V3, writeHelper);
                        knownVertices.Add(tmp, new Vertex(tri.V3));
                    }
                }

                if (knownVertices.ContainsKey(tri.V1))
                {
                    tri.V1.Set(knownVertices[tri.V1]);
                }
                if (knownVertices.ContainsKey(tri.V2))
                {
                    tri.V2.Set(knownVertices[tri.V2]);
                }
                if (knownVertices.ContainsKey(tri.V3))
                {
                    tri.V3.Set(knownVertices[tri.V3]);
                }
                triangles.Add(tri);
            }
            if (writeHelper.HasData())
            {
                MessageBox.Show("The file is to small for the data amount!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                writer.WriteToFile(PathWrite, triangles);
                return(true);
            }
            return(false);
        }