xxooxx

encoder.py

Mar 9th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. from __future__ import print_function
  2.  
  3. import bitstring
  4. from PIL import Image
  5. from tqdm import tqdm
  6. from sys import argv
  7.  
  8. def encode(input, output):
  9.     a = open(input, "rb")
  10.     b = bitstring.Bits(a)
  11.     print("Input file size: " + str(len(b)/8) + " bytes")
  12.     test = Image.new("1", (1920, 1080))
  13.     bitmap = test.load()
  14.     bits = list(b.bin)
  15.  
  16.     _ELEMENT = 0
  17.  
  18.     print(len(bits), _ELEMENT)
  19.  
  20.    
  21.  
  22.     for i in tqdm(range(test.size[0]), desc="Encoding"):
  23.         for j in range(test.size[1]):
  24.             if _ELEMENT == len(bits):
  25.                 test.save(output, "JPEG")
  26.                 a.close()
  27.                 return
  28.             bitmap[i, j] = int(bits[_ELEMENT])
  29.            
  30.             _ELEMENT += 1
  31.        
  32.     test.save(output, "JPEG")
  33.     a.close()
  34.  
  35. def main():
  36.     if len(argv) != 3:
  37.         print("Usage: " + argv[0] + " <input> <output>")
  38.         return
  39.  
  40.     encode(argv[1], argv[2])
  41.  
  42. if __name__ == "__main__":
  43.     main()
Add Comment
Please, Sign In to add comment