private static void Decode(string input, string output) { var signedImage = new Bitmap(Image.FromFile(input)); var codec = new LangelaarCodec(signedImage, new Size(8, 8), 10); var buffers = new List <byte[]>(); for (var i = 0; i < 8; i++) { var b = new byte[2000]; codec.Read(b, 0, b.Length); buffers.Add(b); } var buffer = BitHelper.Merge(buffers); Bitmap oldHash; using (var ms = new MemoryStream(buffer)) { oldHash = new Bitmap(Image.FromStream(ms)); } var newHash = ImageHelper.Hash(signedImage, new Size(100, 100)); var validated = ImageHelper.Validate(signedImage, oldHash, newHash); validated.SaveJpeg(output, 100); }
private static void Decode(string input, string output, Rectangle rect) { var encodedImage = new Bitmap(Image.FromFile(input)); var codec = new LangelaarCodec(encodedImage, new Size(8, 8), 10); var subImage = Image.FromStream(codec); using (var g = Graphics.FromImage(encodedImage)) { g.DrawImage(subImage, rect); } encodedImage.SaveJpeg(output, 100); }
private static void Encode(string input, string output, Rectangle rect) { var originalImage = new Bitmap(Image.FromFile(input)); var subImage = originalImage.Clone(rect, originalImage.PixelFormat); using (var g = Graphics.FromImage(originalImage)) { g.FillRectangle(new SolidBrush(Color.Black), rect); } var codec = new LangelaarCodec(originalImage, new Size(8, 8), 10); subImage.SaveJpeg(codec, 10); Console.WriteLine($"Used {codec.Position} of {codec.Length}"); originalImage.SaveJpeg(output, 100); }
private static void Encode(string input, string output) { var originalImage = new Bitmap(Image.FromFile(input)); var hash = ImageHelper.Hash(originalImage, new Size(100, 100)); var codec = new LangelaarCodec(originalImage, new Size(8, 8), 10); byte[] buffer; using (var ms = new MemoryStream()) { ms.SetLength(2000); hash.Save(ms, ImageFormat.Png); buffer = ms.GetBuffer(); } for (var i = 0; i < 8; i++) { codec.Write(buffer, 0, buffer.Length); } originalImage.SaveJpeg(output, 100); }