Я скачал и установил последнюю версию 3ds max. Я создал плоскость и добавил изображение PNG в качестве текстуры, я экспортировал его в виде файла fbx в формате ascii (версия по умолчанию) с использованием встроенного носителя.
Я видел несколько строк ascii в кодировке base64. Первая строка содержала заголовок PNG, и мой декодер распознал его как файл PNG. Последующие строки не содержали заголовков PNG и были декодированы как файлы BIN. Все это именно так, как вы описываете.
Однако в моем случае простая конкатенация декодированных сегментов правильно восстановила исходный файл PNG, как и следовало ожидать.
Я использовал этот сайт для декодирования всех отдельных фрагментов и загрузки их в виде двоичных файлов перед их объединением.
Я использовал бинарный редактор с открытым исходным кодом HexEdit , чтобы проверить фрагменты и объединить их.
Поскольку этот процесс работал должным образом, я полагаю, что ваша Base64-декодировка или конкатенация должны быть ошибочными. Вы написали свою собственную процедуру декодирования? если это так, возможно, вы забыли сбросить любые байты, соответствующие символам заполнения (терминал =
или ==
, используемый для равномерного деления конечного числа байтов на три для каждой строки). Обратите внимание, что эти байты должны быть сброшены после декодирования, а не до. Практически все библиотеки декодирования делают это для вас незаметно.
Если это не решит вашу проблему, пожалуйста, опубликуйте файл PNG, который вы используете, полную Base64 для первой и второй строк вывода и процедуру, которую вы используете для их декодирования и объединения. Если вы это сделаете, мы рассмотрим более внимательно, чтобы помочь вам разобраться в проблеме.