Indeed, the figures need to be rendered by Matlab in order to make screen captures. 
With newer versions of Matlab, the target figure doesn't need to be at the foreground, it can be in the background.
There are other solutions than using bst_report('Snapshot'). 
You can use the process File > Save snapshot or function out_figure_image.m: 
  
  
    
function varargout = out_figure_image( hFig, imgFile, imgLegend)
% OUT_FIGURE_IMAGE: Save window contents as a bitmap image.
%
% USAGE: img = out_figure_image(hFig)           : Extract figure image and return it
%              out_figure_image(hFig, imgFile)  : Extract figure image and save it to imgFile
%              out_figure_image(hFig, 'Viewer') : Extract figure image and open it with the image viewer
%              out_figure_image(hFig, figFile)  : Save figure as a Matlab .fig file after removing some callbacks
%              out_figure_image(hFig, 'Figure') : Copy figure and removes callbacks 
%              out_figure_image(hFig)           : Extract figure image and save it to a user selected file
%              out_figure_image(hFig, ..., imgLegend)
%              out_figure_image(hFig, ..., 'time')
% @=============================================================================
% This function is part of the Brainstorm software:
% https://neuroimage.usc.edu/brainstorm
% 
% Copyright (c)2000-2020 University of Southern California & McGill University
% This software is distributed under the terms of the GNU General Public License
% as published by the Free Software Foundation. Further details on the GPLv3
% license can be found at http://www.gnu.org/copyleft/gpl.html.
 
  This file has been truncated. show original 
   
  
    
    
  
  
 
             
            
               
               
              2 Likes