如何将图像的奇数长度十六进制转换为base64
how to convert an odd number length hexadecimal of an image to base64
我将图像存储在十六进制字符串中,其中一些是奇数长度的字符串。我需要将这些转换为 base64 以上传到 Clarifai 的 API,后者将 base64 图像作为输入。这些字符串很长,超过 30k 个字符。偶数长度的字符串工作正常,但我不知道如何处理奇数长度的字符串。
我尝试了以下代码片段,通过在开头用 0 填充它们来将奇数字符串转换为偶数,但是,这些字符串也不起作用。
lab = row['concept_name']
img_hex = row['image_byte']
if len(img_hex) % 2 != 1:
img_from_hex = bytes.fromhex(img_hex.replace('0x', ''))
else:
img_from_hex = bytes.fromhex(img_hex.replace('0x','0'))
当我尝试计划转换图像而不使用填充时出现此错误
ValueError: non-hexadecimal number found in fromhex() arg at position 32757
A sample file can be found here
任何帮助将不胜感激。
为了后代,奇数长度的十六进制字符串(对于图像)的长度必须是偶数。如果他们不是,您将度过一段非常糟糕的时光。您可以尝试在开头剥离 0x,然后在开头或结尾填充 0 以查看是否可行。如果没有,则表示字符串中有数据丢失或损坏。除非你知道腐败的确切位置,否则你真的无能为力
我将图像存储在十六进制字符串中,其中一些是奇数长度的字符串。我需要将这些转换为 base64 以上传到 Clarifai 的 API,后者将 base64 图像作为输入。这些字符串很长,超过 30k 个字符。偶数长度的字符串工作正常,但我不知道如何处理奇数长度的字符串。
我尝试了以下代码片段,通过在开头用 0 填充它们来将奇数字符串转换为偶数,但是,这些字符串也不起作用。
lab = row['concept_name']
img_hex = row['image_byte']
if len(img_hex) % 2 != 1:
img_from_hex = bytes.fromhex(img_hex.replace('0x', ''))
else:
img_from_hex = bytes.fromhex(img_hex.replace('0x','0'))
当我尝试计划转换图像而不使用填充时出现此错误
ValueError: non-hexadecimal number found in fromhex() arg at position 32757
A sample file can be found here
任何帮助将不胜感激。
为了后代,奇数长度的十六进制字符串(对于图像)的长度必须是偶数。如果他们不是,您将度过一段非常糟糕的时光。您可以尝试在开头剥离 0x,然后在开头或结尾填充 0 以查看是否可行。如果没有,则表示字符串中有数据丢失或损坏。除非你知道腐败的确切位置,否则你真的无能为力