0

我正在从服务器获取图像(以 base64 字符串格式编码)。这个 base64 编码的字符串必须转换回图像。我分两步做:

  1. 将 base64 编码的字符串转换为缓冲区 - 使用位 -> 字符串到缓冲区(string,"base64")

  2. 将缓冲区写入图片(相同尺寸) - 使用图片 -> 写入缓冲区(缓冲区),然后我正在显示图片。

来自服务器的 base64 字符串(整个字符串):

iVBORw0KGgoAAAANSUhEUgAAAJEAAAAeCAYAAAAsPvwuAAAAmUlEQVR42u3SQQoAIQgAwL7h/x+6sQsLHcqCPI7QITGNmvYsIiK+leX+/ZjPcifnsnvs5pzW3PaunLGrm/W6eZPqv3yjQQQRRBBBBBFEEEEEEUQQQQQRRBBBBBFEEEEEEUQQQQQRRBBBBBFEEEEEEUQQQQQRRBBBBBFEEEEEEUQQQQQRRBBBBBFEEEEEEUQQQQQRRBBBVIuoAwQlLkAhgPjNAAAAAElFTkSuQmCC

问题是:我在墙上展示时没有得到想要的图像。它只显示一个非常小的图像。

所以我尝试在位 -> string to buffer(string,"base64") 方法中找到 TouchDevelop 期望的字符串。

  1. 我从在线转换器(http://www.motobit.com/util/base64-decoder-encoder.asp)获得了原始图像,提供了与从服务器获得的相同的字符串。这个图像是正确的。
  2. 然后我做了上面描述的相反过程——将图像转换为 base64 字符串。为此,我使用图片缓冲(图片)然后缓冲到字符串(“base64”)并显示由 TouchDevelop 为同一图像生成的 base64 字符串。

我从 TouchDevelop 获得的 base64 字符串(只是实际字符串的一小部分 - 实际字符串大小 - 23,300 个字符)

///////////////////////////GRkZ/xkZGf///////////// /8ZGRn/GRkZ///////////GRkZ/xkZGf8ZGRn/GRkZ//////8ZGRn/GRkZ/xkZGf8ZGRn//////xkZGf8ZGRn////////// 8ZGRn/GRkZ/xkZGf8ZGRn//////xkZGf8ZGRn////////////////////xkZGf8ZGRn//////xkZGf8ZGRn//////xkZGf8ZGRn/ GRkZ/xkZGf//////////xkZGf8ZGRn//////xkZGf8ZGRn/GRkZ/xkZGf///////////////////GRkZ/ xkZGf//////GRkZ/xkZGf//////GRkZ/xkZGf8ZGRn/GRkZ///////////GRkZ/xkZGf8ZGRn/GRkZ//////8ZGRn/GRkZ/xkZGf8ZGRn/ //////////////////xkZGf8ZGRn//////xkZGf8ZGRn//////xkZGf8ZGRn//////////8ZGRn/GRkZ //////8ZGRn/GRkZ///////////////////8ZGRn/GRkZ/xkZGf8ZGRn//////xkZGf8ZGRn//////xkZGf8ZGRn /GRkZ/xkZGf//////////xkZGf8ZGRn//////////////……</p>

您可能已经注意到,来自服务器的 base64 字符串和 TouchDevelop 期望显示正确图像的 base64 字符串存在巨大差异。这导致显示不正确的图像。我被困在这个问题上几天了。有错误吗?如果没有,有人可以帮我解决这个问题吗?

4

0 回答 0