pycharm实现lsb
时间: 2023-10-25 07:11:20 浏览: 93
LSB(Least Significant Bit)是一种隐写术,可以将一些信息隐藏在图片、音频、视频等媒体文件中,而不影响原始文件的质量。在Python中,可以使用Pillow库实现LSB隐写。
以下是一个简单的LSB隐写实现示例:
```python
from PIL import Image
def encode_lsb(image_path, message):
# 打开图片
img = Image.open(image_path)
# 将消息转换为二进制字符串
binary_message = ''.join(format(ord(c), '08b') for c in message)
# 检查消息是否可以嵌入到图片中
if len(binary_message) > img.width * img.height:
raise ValueError('Message too large to encode in image')
# 将消息嵌入到图片中
pixels = img.load()
index = 0
for i in range(img.width):
for j in range(img.height):
r, g, b = pixels[i, j]
if index < len(binary_message):
pixels[i, j] = (r & ~1 | int(binary_message[index]), g, b)
index += 1
# 保存修改后的图片
img.save('encoded.png')
def decode_lsb(image_path):
# 打开图片
img = Image.open(image_path)
# 从图片中提取消息
binary_message = ''
pixels = img.load()
for i in range(img.width):
for j in range(img.height):
r, g, b = pixels[i, j]
binary_message += str(r & 1)
# 将二进制字符串转换为消息
message = ''
for i in range(0, len(binary_message), 8):
message += chr(int(binary_message[i:i+8], 2))
return message
# 示例用法
encode_lsb('original.png', 'Hello, world!')
print(decode_lsb('encoded.png'))
```
阅读全文