37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import binascii
|
|
|
|
def image_to_binary(image_path):
|
|
"""将图片文件转换为二进制数据"""
|
|
with open(image_path, 'rb') as file:
|
|
return file.read()
|
|
|
|
def binary_to_image(binary_data, output_path):
|
|
"""将二进制数据保存为图片文件"""
|
|
with open(output_path, 'wb') as file:
|
|
file.write(binary_data)
|
|
|
|
def binary_to_hex(binary_data):
|
|
"""将二进制数据转换为十六进制字符串"""
|
|
return binascii.hexlify(binary_data).decode('utf-8')
|
|
|
|
def hex_to_binary(hex_string):
|
|
"""将十六进制字符串转换回二进制数据"""
|
|
return binascii.unhexlify(hex_string)
|
|
|
|
# 使用示例
|
|
if __name__ == "__main__":
|
|
# 读取图片并转换为二进制
|
|
binary_data = image_to_binary('./tcp_data/VDES报文传输的图片.jpg')
|
|
print(f"原始图片大小: {len(binary_data)} 字节")
|
|
|
|
# 转换为十六进制字符串
|
|
hex_data = binary_to_hex(binary_data)
|
|
print(f"十六进制表示长度: {len(hex_data)} 字符")
|
|
print(f"十六进制预览: {hex_data}...")
|
|
|
|
# 转换回二进制
|
|
restored_binary = hex_to_binary(hex_data)
|
|
|
|
# 保存回图片文件
|
|
# binary_to_image(restored_binary, 'output.jpg')
|
|
# print("图片已成功转换并保存为 output.jpg") |