如何将HEX中的XML图像数据转换为可以使用Livecode查看的图像

时间:2014-06-15 16:49:09

标签: livecode

我正在尝试将呈现为HEX数据的图像(以XML文件中的HEX形式出现)转换回我可以使用我的堆栈用户界面显示的图像。我已经尝试了我能想到的每个选项,并且可以在论坛和手册中找到并最终得到binaryEncode函数:binaryEncode(formatsList,dataStringList)并尝试了所有可能的“formatsList”选项(例如h,H,C等)。 。我的堆栈中的一个例子:

on mouseUp
  put field "Field2" into tHex
  put binaryEncode("x*",tHex) into URL "binfile:/Users/xxx/Desktop/VV/test.png"
end mouseUp

HEX数据按照字典以逗号分隔,如下所示:FF,D8,FF,E0,00,11,4A,46,49,46,00,01,01,01,00,00, 00等任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

供参考,这是您最初的目标;

put field "Field2" into tHex
replace comma with empty in tHex
put binaryEncode("H*", tHex) into  URL "binfile:/Users/xxx/Desktop/VV/test.png"

答案 1 :(得分:1)

这有点慢,但几乎可以保证工作:

repeat for each item myHex in fld "Field2"
  put numToChar("0x" & myHex) after myBinary
end repeat
put myBinary into url "binfile:/Users/xxx/Desktop/VV/test.png"

它将每个十六进制字转换为其二进制等价物。如果您将行put myBinary添加到结尾,则应识别PNG格式(如果原始图像为PNG格式)。

另一方面,调用字段“Field2”有点危险。您可能很容易犯错,并写下“Field 2”,这将是一个完全不同的字段,数字2而不是名称为“Field 2”的字段。我建议使用稍微有点创造性的名字。