From 100725d05c75b43c528b9f1c7cc06e8f33b33d8a Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Thu, 23 Apr 2015 09:06:09 +0200 Subject: [PATCH] Preparations --- .gitignore | 3 +++ steginack.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100755 steginack.py diff --git a/.gitignore b/.gitignore index ba74660..479964d 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,6 @@ docs/_build/ # PyBuilder target/ + +# Testing +*.png diff --git a/steginack.py b/steginack.py new file mode 100755 index 0000000..8309cb3 --- /dev/null +++ b/steginack.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +from PIL import Image +import argparse + + +def hideInFile(infile, hidefile, bits, outfile): + inim = Image.open(infile) + hideim = Image.open(hidefile) + assert inim.size == hideim.size, "Both image must be of the same size" + outim = Image.new('RGB', inim.size) + inim.close() + hideim.close() + outim.save(outfile, 'PNG') + +def inverseFile(infile, bits, outfile): + inim = Image.open(infile) + outim = Image.new('RGB', inim.size) + inim.close() + outim.save(outfile, 'PNG') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description="Hide an image inside another and decode images") + parser.add_argument('infile', metavar='INFILE', type=str, help="Input file") + parser.add_argument('bits', metavar='BITS', type=int, help="Number of bits to use") + parser.add_argument('outfile', metavar='OUTFILE', type=str, help="Output file") + parser.add_argument('-s', '--hide', type=str, help="File to hide") + args = parser.parse_args() + if args.hide: + hideInFile(args.infile, args.hide, args.bits, args.outfile) + else: + inverseFile(args.infile, args.bits, args.outfile)