ダメなのは、一旦 TStringsにしてるからじゃないの?
ストリームを使ってファイルを開いて
var s:string;
s:=jconvert.DecodeBase64(str);
xx.Write(PChar(s)^ , Length(s));

としてみたら?
Delphiで小さな実行ファイルを作ろう
http://pc.2ch.net/test/read.cgi/tech/1009080085/


これの 22の ソース使って
  writeFileStr( 'aaa.jpg', jconvert.DecodeBase64(str))
 とやれば一番簡単かもね