Vermutlich arbeitest du beim Base64De- und Encoder mit Strings anstatt mit Memory. Deswegen klappt's nicht. Im Unicode-Modus verbraucht nämlich jedes Zeichen in einem String 2 Bytes und nicht nur 1 Byte. Wenn dir das Base64-kodierte Bild in deinem Quellcode nur als String vorliegt, z.B. in einer Datasection, dann musst du diesen String zuvor per 'PokeS(*buffer, #PB_Ascii)' in einen mit 'AllocateMemory()' angelegten Speicherbereich kopieren und von da aus den Bas64Decoder aufrufen.
Was deinen rtf-Editor angeht, kann ich dir allerdings gerade nicht helfen. Ist der aus einer UserLib oder eine extra Include, die du nutzt? Oder meinst du das normale EditorGadget, was ja eigentlich meines Wissens nichts anderes ist als ein RTF-Editor.