Python 2 compatibility for exifHeader.

This commit is contained in:
Cédric Bonhomme 2016-05-26 07:18:56 +02:00
parent 1def5672ab
commit fef2040fca
No known key found for this signature in database
GPG key ID: A1CB94DE57B7A70D
4 changed files with 26 additions and 12 deletions

15
bin/lsb
View file

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3.5
#-*- coding: utf-8 -*-
# Stéganô - Stéganô is a basic Python Steganography module.
@ -78,8 +78,15 @@ if options.hide:
elif options.reveal:
secret = lsb.reveal(options.input_image_file)
if options.secret_binary != "":
data = tools.base642binary(secret)
with open(options.secret_binary, "w") as f:
f.write(data)
data = tools.base642binary(bytes(secret, "utf-8"))
from PIL import Image
import io
file_like = io.BytesIO(data)
file_like.seek(0)
image = Image.open(file_like)
image.save(options.secret_binary)
"""data = tools.base642binary(bytes(secret, "utf-8)"))
with open(options.secret_binary, "wb") as f:
f.write(data)"""
else:
print(secret)

View file

@ -20,8 +20,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>
__author__ = "Cedric Bonhomme"
__version__ = "$Revision: 0.2 $"
__date__ = "$Date: 2016/05/17 $"
__version__ = "$Revision: 0.2.1 $"
__date__ = "$Date: 2016/05/26 $"
__license__ = "GPLv3"
from PIL import Image
@ -36,10 +36,12 @@ def hide(input_image_file, img_enc, secret_message = None, secret_file = None):
if secret_file != None:
with open(secret_file, "r") as f:
secret_file_content = f.read()
text = compress(b64encode(bytes(secret_file_content, "utf-8")))
else:
secret_message = f.read()
try:
text = compress(b64encode(bytes(secret_message, "utf-8")))
except:
text = compress(b64encode(secret_message))
img = Image.open(input_image_file)
if "exif" in img.info:

View file

@ -181,8 +181,8 @@ if __name__ == '__main__':
elif options.reveal:
secret = reveal(options.input_image_file)
if options.secret_binary != "":
data = tools.base642binary(secret)
with open(options.secret_binary, "w") as f:
data = tools.base642binary(bytes(secret, "utf-8)"))
with open(options.secret_binary, "wb") as f:
f.write(data)
else:
print(secret)

View file

@ -107,4 +107,9 @@ def base642binary(b64_fname):
#b64_str = fin.read()
#fin.close()
# Decode base64 string to original binary sound object
return base64.b64decode(b64_fname)
missing_padding = 4 - len(b64_fname) % 4
if missing_padding:
b64_fname += b'='* missing_padding
return base64.decodestring(b64_fname)
#return base64.b64decode(b64_fname)