Loading noctua/api/fits_image.py +2 −1 Original line number Diff line number Diff line Loading @@ -251,9 +251,10 @@ async def image_png(station, camera): vmin, vmax = _auto_range(data) rgb = _apply_viridis(data, vmin, vmax) png = array_to_png(rgb) # utils.image.array_to_png handles RGB ndim=3 png = array_to_png(rgb) return Response(png, mimetype='image/png', headers={'Cache-Control': 'no-store'}) @viewer_blueprint.route('/viewer/<station>/<camera>/panoramic') async def image_panoramic(station, camera): """ Loading noctua/web/pages/viewer.html +13 −13 Original line number Diff line number Diff line Loading @@ -36,8 +36,8 @@ <div class="viewer-canvas-wrap position-relative" style="background:#000; overflow:hidden; border-radius:6px;"> <canvas class="cv-principale d-block" style="width:100%; aspect-ratio:4/3; cursor:crosshair; <canvas class="cv-principale d-block" width="800" height="800" style="width:100%; aspect-ratio:1/1; cursor:crosshair; transform-origin:0 0;"> </canvas> Loading Loading @@ -100,7 +100,7 @@ Panoramic </div> <div class="position-relative" style="background:#000; border-radius:4px; overflow:hidden;"> <canvas class="cv-panoramic d-block" width="256" height="192" style="width:100%; height:auto;"></canvas> <canvas class="cv-panoramic d-block" width="256" height="256" style="width:100%; height:auto;"></canvas> </div> </div> Loading @@ -110,21 +110,19 @@ Explore </div> <div style="background:#000; border-radius:4px; overflow:hidden;"> <!-- Rimosso width e height fissi dal canvas, ora gestiti dinamicamente via JS --> <canvas class="cv-explore d-block" style="width:100%; image-rendering:pixelated;"></canvas> <canvas class="cv-explore d-block" width="256" height="256" style="width:100%; image-rendering:pixelated;"></canvas> </div> <!-- NEW: Input for Explore size --> <div class="d-flex align-items-center gap-1 mt-1 justify-content-between"> <div class="input-group input-group-sm" style="flex:1;"> <span class="input-group-text" style="font-size:.65rem; padding: 2px 6px; background:#1a1a1a; border-color:#333; color:#aaa;">W</span> <span class="input-group-text" style="font-size:.65rem; padding: 2px 6px; background:#1a1a1a; border-color:#333; color:#aaa;">Box</span> <input type="number" class="ctrl-explore-w form-control form-control-sm" style="background:#111; border-color:#333; font-size:.7rem; color:#b0ffb0;" value="30" step="10"> </div> <div class="input-group input-group-sm" style="flex:1;"> <span class="input-group-text" style="font-size:.65rem; padding: 2px 6px; background:#1a1a1a; border-color:#333; color:#aaa;">H</span> <input type="number" class="ctrl-explore-h form-control form-control-sm" style="background:#111; border-color:#333; font-size:.7rem; color:#b0ffb0;" value="20" step="10"> style="background:#111; border-color:#333; font-size:.7rem; color:#b0ffb0;" box="100" step="10"> </div> </div> </div> Loading @@ -136,7 +134,9 @@ <span class="badge bg-black bg-opacity-75 info-tec ms-1" style="font-family:monospace; font-size:.6rem;"></span> </div> <div class="position-relative" style="background:#000; border-radius:4px; overflow:hidden;"> <canvas class="cv-teccam d-block" style="width:100%; aspect-ratio:4/3;"></canvas> <canvas class="cv-teccam d-block" width="256" height="256" style="width:100%; aspect-ratio:1/1;"></canvas> <svg class="overlay-teccam position-absolute top-0 start-0 w-100 h-100" style="pointer-events:none; overflow:visible;" xmlns="http://www.w3.org/2000/svg"> </svg> Loading noctua/web/static/js/viewer/fits-viewer.js +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ export class FitsViewer { infoSci: root.querySelector('.info-sci'), infoTec: root.querySelector('.info-tec'), crosshair: root.querySelector('.cv-crosshair'), canvasExploreW: root.querySelector('.ctrl-explore-w'), }; this._sci = { Loading Loading
noctua/api/fits_image.py +2 −1 Original line number Diff line number Diff line Loading @@ -251,9 +251,10 @@ async def image_png(station, camera): vmin, vmax = _auto_range(data) rgb = _apply_viridis(data, vmin, vmax) png = array_to_png(rgb) # utils.image.array_to_png handles RGB ndim=3 png = array_to_png(rgb) return Response(png, mimetype='image/png', headers={'Cache-Control': 'no-store'}) @viewer_blueprint.route('/viewer/<station>/<camera>/panoramic') async def image_panoramic(station, camera): """ Loading
noctua/web/pages/viewer.html +13 −13 Original line number Diff line number Diff line Loading @@ -36,8 +36,8 @@ <div class="viewer-canvas-wrap position-relative" style="background:#000; overflow:hidden; border-radius:6px;"> <canvas class="cv-principale d-block" style="width:100%; aspect-ratio:4/3; cursor:crosshair; <canvas class="cv-principale d-block" width="800" height="800" style="width:100%; aspect-ratio:1/1; cursor:crosshair; transform-origin:0 0;"> </canvas> Loading Loading @@ -100,7 +100,7 @@ Panoramic </div> <div class="position-relative" style="background:#000; border-radius:4px; overflow:hidden;"> <canvas class="cv-panoramic d-block" width="256" height="192" style="width:100%; height:auto;"></canvas> <canvas class="cv-panoramic d-block" width="256" height="256" style="width:100%; height:auto;"></canvas> </div> </div> Loading @@ -110,21 +110,19 @@ Explore </div> <div style="background:#000; border-radius:4px; overflow:hidden;"> <!-- Rimosso width e height fissi dal canvas, ora gestiti dinamicamente via JS --> <canvas class="cv-explore d-block" style="width:100%; image-rendering:pixelated;"></canvas> <canvas class="cv-explore d-block" width="256" height="256" style="width:100%; image-rendering:pixelated;"></canvas> </div> <!-- NEW: Input for Explore size --> <div class="d-flex align-items-center gap-1 mt-1 justify-content-between"> <div class="input-group input-group-sm" style="flex:1;"> <span class="input-group-text" style="font-size:.65rem; padding: 2px 6px; background:#1a1a1a; border-color:#333; color:#aaa;">W</span> <span class="input-group-text" style="font-size:.65rem; padding: 2px 6px; background:#1a1a1a; border-color:#333; color:#aaa;">Box</span> <input type="number" class="ctrl-explore-w form-control form-control-sm" style="background:#111; border-color:#333; font-size:.7rem; color:#b0ffb0;" value="30" step="10"> </div> <div class="input-group input-group-sm" style="flex:1;"> <span class="input-group-text" style="font-size:.65rem; padding: 2px 6px; background:#1a1a1a; border-color:#333; color:#aaa;">H</span> <input type="number" class="ctrl-explore-h form-control form-control-sm" style="background:#111; border-color:#333; font-size:.7rem; color:#b0ffb0;" value="20" step="10"> style="background:#111; border-color:#333; font-size:.7rem; color:#b0ffb0;" box="100" step="10"> </div> </div> </div> Loading @@ -136,7 +134,9 @@ <span class="badge bg-black bg-opacity-75 info-tec ms-1" style="font-family:monospace; font-size:.6rem;"></span> </div> <div class="position-relative" style="background:#000; border-radius:4px; overflow:hidden;"> <canvas class="cv-teccam d-block" style="width:100%; aspect-ratio:4/3;"></canvas> <canvas class="cv-teccam d-block" width="256" height="256" style="width:100%; aspect-ratio:1/1;"></canvas> <svg class="overlay-teccam position-absolute top-0 start-0 w-100 h-100" style="pointer-events:none; overflow:visible;" xmlns="http://www.w3.org/2000/svg"> </svg> Loading
noctua/web/static/js/viewer/fits-viewer.js +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ export class FitsViewer { infoSci: root.querySelector('.info-sci'), infoTec: root.querySelector('.info-tec'), crosshair: root.querySelector('.cv-crosshair'), canvasExploreW: root.querySelector('.ctrl-explore-w'), }; this._sci = { Loading