fixes #23: lsbset.hide cause .png transparent area lost.

This commit is contained in:
Cédric Bonhomme 2019-05-31 22:15:04 +02:00
parent c5b7df87f5
commit 48ff22476f
No known key found for this signature in database
GPG key ID: A1CB94DE57B7A70D

View file

@ -89,14 +89,14 @@ def hide(
# Save the new pixel # Save the new pixel
if img.mode == "RGBA": if img.mode == "RGBA":
img_list[generated_number] = (r, g, b, a[0]) img_list[generated_number] = (r, g, b, *a)
else: else:
img_list[generated_number] = (r, g, b) img_list[generated_number] = (r, g, b)
index += 3 index += 3
# create empty new image of appropriate format # 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 # insert saved data into the image
encoded.putdata(img_list) encoded.putdata(img_list)
@ -126,7 +126,7 @@ def reveal(
while True: while True:
generated_number = next(generator) generated_number = next(generator)
# color = [r, g, b] # 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) buff += (color & 1) << (tools.ENCODINGS[encoding] - 1 - count)
count += 1 count += 1
if count == tools.ENCODINGS[encoding]: if count == tools.ENCODINGS[encoding]: