mirror of
https://github.com/GeoffreyFrogeye/steginack.git
synced 2024-11-21 18:16:03 +01:00
Fixed image hiding and added inverse
This commit is contained in:
parent
63a4af6e0f
commit
3f34e955c8
25
steginack.py
25
steginack.py
|
@ -18,14 +18,14 @@ def hideInFile(infile, hidefile, bits, outfile):
|
||||||
for x in range(inim.size[0]):
|
for x in range(inim.size[0]):
|
||||||
for y in range(inim.size[1]):
|
for y in range(inim.size[1]):
|
||||||
incol = inim.getpixel((x, y))
|
incol = inim.getpixel((x, y))
|
||||||
hidecol = inim.getpixel((x, y))
|
hidecol = hideim.getpixel((x, y))
|
||||||
outcol = []
|
outcol = []
|
||||||
for cp in range(len(incol)):
|
for cp in range(len(incol)):
|
||||||
inbyt = get_bin(incol[cp], 8)
|
inbyt = get_bin(incol[cp], 8)
|
||||||
hidebyt = get_bin(hidecol[cp], 8)
|
hidebyt = get_bin(hidecol[cp], 8)
|
||||||
outbyt = list(inbyt)
|
outbyt = list(inbyt)
|
||||||
for bit in range(bits):
|
for bit in range(bits):
|
||||||
outbyt[-bit - 1] = inbyt[1]
|
outbyt[-bit - 1] = hidebyt[bit]
|
||||||
outcol.append(int(''.join(outbyt), 2))
|
outcol.append(int(''.join(outbyt), 2))
|
||||||
outim.putpixel((x, y), tuple(outcol))
|
outim.putpixel((x, y), tuple(outcol))
|
||||||
eta.print_status(x * inim.size[1] + y)
|
eta.print_status(x * inim.size[1] + y)
|
||||||
|
@ -35,10 +35,23 @@ def hideInFile(infile, hidefile, bits, outfile):
|
||||||
outim.save(outfile, 'PNG')
|
outim.save(outfile, 'PNG')
|
||||||
|
|
||||||
|
|
||||||
def inverseFile(infile, bits, outfile):
|
def inverseFile(infile, outfile):
|
||||||
inim = Image.open(infile)
|
inim = Image.open(infile)
|
||||||
outim = Image.new('RGB', inim.size)
|
outim = Image.new('RGB', inim.size)
|
||||||
assert 0 <= bits <= 8
|
eta = ETA(inim.size[0] * inim.size[1])
|
||||||
|
for x in range(inim.size[0]):
|
||||||
|
for y in range(inim.size[1]):
|
||||||
|
incol = inim.getpixel((x, y))
|
||||||
|
outcol = []
|
||||||
|
for cp in range(len(incol)):
|
||||||
|
inbyt = get_bin(incol[cp], 8)
|
||||||
|
outbyt = list(inbyt)
|
||||||
|
for bit in range(8):
|
||||||
|
outbyt[-bit - 1] = inbyt[bit]
|
||||||
|
outcol.append(int(''.join(outbyt), 2))
|
||||||
|
outim.putpixel((x, y), tuple(outcol))
|
||||||
|
eta.print_status(x * inim.size[1] + y)
|
||||||
|
eta.done()
|
||||||
inim.close()
|
inim.close()
|
||||||
outim.save(outfile, 'PNG')
|
outim.save(outfile, 'PNG')
|
||||||
|
|
||||||
|
@ -46,11 +59,11 @@ def inverseFile(infile, bits, outfile):
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description="Hide an image inside another and decode images")
|
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('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('outfile', metavar='OUTFILE', type=str, help="Output file")
|
||||||
|
parser.add_argument('-b', '--bits', type=int, help="Number of bits to use for hiding")
|
||||||
parser.add_argument('-s', '--hide', type=str, help="File to hide")
|
parser.add_argument('-s', '--hide', type=str, help="File to hide")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
if args.hide:
|
if args.hide:
|
||||||
hideInFile(args.infile, args.hide, args.bits, args.outfile)
|
hideInFile(args.infile, args.hide, args.bits, args.outfile)
|
||||||
else:
|
else:
|
||||||
inverseFile(args.infile, args.bits, args.outfile)
|
inverseFile(args.infile, args.outfile)
|
||||||
|
|
Loading…
Reference in a new issue