From 48ff22476f658c6ab8c79162b534c92c756da342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Fri, 31 May 2019 22:15:04 +0200 Subject: [PATCH] fixes #23: lsbset.hide cause .png transparent area lost. --- stegano/lsbset/lsbset.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stegano/lsbset/lsbset.py b/stegano/lsbset/lsbset.py index 04fa9fa..65f08e8 100644 --- a/stegano/lsbset/lsbset.py +++ b/stegano/lsbset/lsbset.py @@ -89,14 +89,14 @@ def hide( # Save the new pixel if img.mode == "RGBA": - img_list[generated_number] = (r, g, b, a[0]) + img_list[generated_number] = (r, g, b, *a) else: img_list[generated_number] = (r, g, b) index += 3 # create empty new image of appropriate format - encoded = Image.new("RGB", (img.size)) + encoded = Image.new(img.mode, (img.size)) # insert saved data into the image encoded.putdata(img_list) @@ -126,7 +126,7 @@ def reveal( while True: generated_number = next(generator) # color = [r, g, b] - for color in img_list[generated_number]: + for color in img_list[generated_number][0:3]: buff += (color & 1) << (tools.ENCODINGS[encoding] - 1 - count) count += 1 if count == tools.ENCODINGS[encoding]: