@@ -190,8 +190,7 @@ public async Task RenderToPng(
190190
191191 try
192192 {
193- using var image = _engine . RenderToImage (
194- layoutTemplate , effectiveData , _filterRegistry , imageCache , processedTemplate , _contentParserRegistry ) ;
193+ using var image = _engine . RenderToImage ( processedTemplate , imageCache ) ;
195194
196195 var encoder = new PngEncoder ( ) ;
197196 await image . SaveAsync ( output , encoder , cancellationToken ) . ConfigureAwait ( false ) ;
@@ -241,8 +240,7 @@ public async Task RenderToJpeg(
241240
242241 try
243242 {
244- using var image = _engine . RenderToImage (
245- layoutTemplate , effectiveData , _filterRegistry , imageCache , processedTemplate , _contentParserRegistry ) ;
243+ using var image = _engine . RenderToImage ( processedTemplate , imageCache ) ;
246244
247245 var encoder = new JpegEncoder { Quality = effectiveOptions . Quality } ;
248246 await image . SaveAsync ( output , encoder , cancellationToken ) . ConfigureAwait ( false ) ;
@@ -291,8 +289,7 @@ public async Task RenderToBmp(
291289
292290 try
293291 {
294- using var image = _engine . RenderToImage (
295- layoutTemplate , effectiveData , _filterRegistry , imageCache , processedTemplate , _contentParserRegistry ) ;
292+ using var image = _engine . RenderToImage ( processedTemplate , imageCache ) ;
296293
297294 var encoder = new BmpEncoder { BitsPerPixel = BmpBitsPerPixel . Pixel32 } ;
298295 await image . SaveAsync ( output , encoder , cancellationToken ) . ConfigureAwait ( false ) ;
@@ -339,8 +336,7 @@ public async Task RenderToRaw(
339336
340337 try
341338 {
342- using var image = _engine . RenderToImage (
343- layoutTemplate , effectiveData , _filterRegistry , imageCache , processedTemplate , _contentParserRegistry ) ;
339+ using var image = _engine . RenderToImage ( processedTemplate , imageCache ) ;
344340
345341 // Write raw RGBA pixel data
346342 var pixelCount = checked ( image . Width * image . Height ) ;
@@ -360,26 +356,23 @@ public async Task RenderToRaw(
360356 // ========================================================================
361357
362358 /// <summary>
363- /// Pre-loads all images referenced in the template using the configured resource loaders.
364- /// Also returns the processed template so callers can skip redundant expand+preprocess steps .
359+ /// Expands and processes the template asynchronously, then pre-loads all images
360+ /// referenced in it using the configured resource loaders .
365361 /// </summary>
366- /// <param name="template">The template to scan for image references.</param>
362+ /// <param name="template">The template to process and scan for image references.</param>
367363 /// <param name="data">The data context for expression evaluation.</param>
368364 /// <param name="cancellationToken">Cancellation token for async operations.</param>
369365 /// <returns>
370- /// A tuple of the processed template and an image cache. The processed template is non-null
371- /// when resource loaders are configured (since expand+preprocess was already performed).
372- /// The image cache maps URIs to pre-loaded images, or is <c>null</c> when no images were found .
366+ /// A tuple of the fully processed template and an image cache. The processed template
367+ /// is always non-null. The image cache maps URIs to pre-loaded images, or is <c>null</c>
368+ /// when no images were found or no resource loaders are configured .
373369 /// Caller is responsible for disposing images via <see cref="DisposeImageCache"/>.
374370 /// </returns>
375- private async Task < ( Template ? processedTemplate , Dictionary < string , Image < Rgba32 > > ? imageCache ) > PreloadImages (
371+ private async Task < ( Template processedTemplate , Dictionary < string , Image < Rgba32 > > ? imageCache ) > PreloadImages (
376372 Template template ,
377373 ObjectValue data ,
378374 CancellationToken cancellationToken )
379375 {
380- if ( _resourceLoaders . Count == 0 )
381- return ( null , null ) ;
382-
383376 // Expand, resolve, and materialize template to resolve expressions in image src attributes
384377 var expander = _filterRegistry is not null
385378 ? new TemplateExpander ( _limits , _filterRegistry , _contentParserRegistry , _resourceLoaders )
@@ -391,6 +384,9 @@ public async Task RenderToRaw(
391384 var pipeline = new TemplatePipeline ( expander , templateProcessor ) ;
392385 var processedTemplate = await pipeline . ProcessAsync ( template , data ) . ConfigureAwait ( false ) ;
393386
387+ if ( _resourceLoaders . Count == 0 )
388+ return ( processedTemplate , null ) ;
389+
394390 var uris = ImageSharpRenderingEngine . CollectImageUris ( processedTemplate ) ;
395391 if ( uris . Count == 0 )
396392 return ( processedTemplate , null ) ;
0 commit comments