Update decodifica servizi PNG

This commit is contained in:
Samuele Locatelli
2025-11-03 18:42:04 +01:00
parent 63750c44ac
commit c02f446b9c
13 changed files with 66 additions and 16 deletions
+37 -2
View File
@@ -1,6 +1,9 @@
using Microsoft.AspNetCore.Http;
using EgwCoreLib.Lux.Data.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NLog;
using System.Diagnostics;
using System.Text;
namespace Lux.API.Controllers
{
@@ -8,8 +11,9 @@ namespace Lux.API.Controllers
[ApiController]
public class ImageController : ControllerBase
{
public ImageController(ILogger<ImageController> logger)
public ImageController(ImageCacheService imgServ, ILogger<ImageController> logger)
{
_imgService = imgServ;
_logger = logger;
}
/// <summary>
@@ -31,6 +35,37 @@ namespace Lux.API.Controllers
return File(bytes, "image/svg+xml");
}
/// <summary>
/// Chiamata GET: restituisce file PNG (da file o da cache)
/// PUT: api/image/png/00000000-0000-0000-0000-000000000000
/// </summary>
/// <param name="id">id oggetto</param>
/// <returns></returns>
[HttpGet("png/{id}")]
public async Task<IActionResult> png(string id)
{
Stopwatch sw = new Stopwatch();
sw.Start();
string base64Encoded = "";
byte[] decodedBytes = new byte[0];
// ...se ricevo percorso --> leggo jwd/svg cablato
if (!string.IsNullOrEmpty(id))
{
// bonifica nome svg da
base64Encoded = _imgService.LoadPng(id, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM);
// converto base64
decodedBytes = Convert.FromBase64String(base64Encoded);
}
sw.Stop();
Log.Info($"pngString | {sw.Elapsed.TotalMilliseconds:N3} ms");
//return Ok(decodedString);
return File(decodedBytes, "image/png");
}
private ImageCacheService _imgService { get; set; }
private readonly ILogger<ImageController> _logger;
private static Logger Log = LogManager.GetCurrentClassLogger();
}
}