Правильный ли для вас размер байтового массива, декодированного в base64? Если это так, все, что вам нужно сделать, это рассчитать размер без его декодирования, верно?
Массив байтов размера N будет кодироваться в (N * 4) / 3 байта, всегда округляя . Вам нужно взглянуть на последние несколько символов строки, чтобы понять, сколько нужно удалить для округления. В основном это должно быть что-то вроде:
string x = GetBase64DataFromWherever();
int size = (x.Length *3)/4;
if (x.EndsWith("="))
{
size--;
}
if (x.EndsWith("=="))
{
size--; // 1 will already have been removed by the if statement above
}
Это не проверено, но, вероятно, у вас есть хорошие тестовые данные, с которыми вы можете их попробовать:)