Advertisement
Guest User

Text/Image Encoding

a guest
Mar 23rd, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.30 KB | None | 0 0
  1. class Program {
  2.     public const string IMG_PATH = @"c:\dev\hhgg.png";
  3.     public const string TXT_PATH = @"c:\dev\hhgg.txt";
  4.  
  5.     static void Main(string[] args) {
  6.         Encode();
  7.         Decode();
  8.     }
  9.  
  10.     private static void Decode() {
  11.         var img = (Bitmap)Image.FromFile(IMG_PATH);
  12.         using (var sw = new StreamWriter(TXT_PATH))
  13.             for (var i = 0; i < img.Height; i++)
  14.                 for (var j = 0; j < img.Width; j++) {
  15.                     var px = img.GetPixel(j, i);
  16.                     sw.Write("{0}{1}{2}{3}", (char)px.A, (char)px.R, (char)px.G, (char)px.B);
  17.                 }
  18.         Process.Start(TXT_PATH);
  19.     }
  20.  
  21.     private static void Encode() {
  22.         const int width = 267, height = 251;
  23.         var txt = File.ReadAllText(TXT_PATH);
  24.         var bytes = new Queue<byte>(Encoding.ASCII.GetBytes(txt));
  25.         var colors = new Queue<Color>(Enumerable.Repeat(0, 67017)
  26.             .Select(x => Color.FromArgb(bytes.Dequeue(), bytes.Dequeue(), bytes.Dequeue(), bytes.Dequeue())));
  27.         var img = new Bitmap(width, height);
  28.         for (var i = 0; i < img.Height; i++)
  29.             for (var j = 0; j < img.Width; j++)
  30.                 img.SetPixel(j, i, colors.Dequeue());
  31.         img.Save(IMG_PATH, ImageFormat.Png);
  32.         Process.Start(IMG_PATH);
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement