在Flutter中将BASE64字符串转换为Image

时间:2019-11-24 05:57:45

标签: flutter dart

我尝试将Uint8List字符串解码为Uint8List _bytes = base64.decode('data:image/jpeg;base64,/9j/4AAQ .........'); Image.memory(_bytes);

template<typename TSignature>
class CAction;

template<typename TRetType, typename... Args>
class CAction<TRetType(Args...)> {
public:

    TRetType func(Args... a)
    {
        cout << "non void" << endl;
        myPrint(a...);
        cout <<"\n\n";
        TRetType nRet(0);
        return nRet;
    }
};

template<typename... Args>
class CAction<void(Args...)> {
public:
    void func(Args... a)
    {
        cout << "void" << endl;
        myPrint(a...);
        cout << "\n\n";
    }
};

但是出现错误,(字符错误:)

  

无效字符(第5个字符)   数据:image / jpeg; base64,/ 9j / 4AAQSkZJRgABAQAAAQABAAD / 2wCEAAkGBxITEhUSEhMVFRUV ...

如何摆脱这个问题?

1 个答案:

答案 0 :(得分:2)

您使用的URI包含RFC-2397定义的逗号后的数据。 Dart的Uri类基于RFC-3986,因此您不能使用它。用逗号分隔字符串,然后使用字符串的最后一部分:

String uri = 'data:image/gif;base64,...';
Uint8List _bytes = base64.decode(uri.split(',').last);