Guest User

Untitled

a guest
Jun 3rd, 2026
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 6.28 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. html, body {
  6.   height: 100vh;
  7.   overflow: hidden;
  8.   margin: 0;
  9.   padding: 0;
  10. }
  11. body {
  12.   background: #1a1a1a;
  13.   color: #ddd;
  14.   font: 12px monospace;
  15.   margin: 0;
  16.   box-sizing: border-box;
  17.   display: flex;
  18.   flex-direction: column;
  19.   align-items: center;
  20. }
  21. .main-content {
  22.   width: 100%;
  23.   margin: 10px auto;
  24.   box-sizing: border-box;
  25.   padding: 10px;
  26. }
  27. canvas#c {
  28.   border: 1px solid #444;
  29.   display: block;
  30.   image-rendering: pixelated;
  31.   image-rendering: crisp-edges;
  32.   height: auto;
  33.   max-width: 100%;
  34.   aspect-ratio: 640 / 480;
  35. }
  36. .controls {
  37.   margin: 4px 0;
  38.   width: 100%;
  39.   box-sizing: border-box;
  40.   display: flex;
  41.   flex-wrap: wrap;
  42.   align-items: center;
  43.   gap: 8px;
  44. }
  45. .controls input[type="range"] {
  46.   width: 160px;
  47.   vertical-align: middle;
  48. }
  49. button, select {
  50.   background: #333;
  51.   color: #ddd;
  52.   border: 1px solid #555;
  53.   padding: 4px 8px;
  54.   margin: 2px;
  55.   cursor: pointer;
  56. }
  57. button:hover, select:hover { background: #444; }
  58. .stats {
  59.   background: #222;
  60.   padding: 5px;
  61.   margin: 5px 0;
  62.   display: inline-block;
  63. }
  64. .section.histogram-section {
  65.   width: 100%;
  66.   margin: 10px auto;
  67.   box-sizing: border-box;
  68. }
  69. #histogramCanvas {
  70.   width: 100% !important;
  71.   height: 100px !important;
  72.   max-width: 100%;
  73.   display: block;
  74.   margin: 0 auto;
  75.   background: #353535;
  76. }
  77. #paletteCanvas {
  78.   width: 100% !important;
  79.   height: 32px !important;
  80.   max-width: 100%;
  81.   display: block;
  82.   margin: 0 auto;
  83.   background: #353535;
  84. }
  85. @media (max-width: 700px) {
  86.   .main-content, .section.histogram-section, .controls { max-width: 100vw; padding: 5px; }
  87.   canvas, #histogramCanvas { width: 100vw !important; max-width: 100vw; }
  88. }
  89. </style>
  90. </head>
  91. <body>
  92. <div class="main-content">
  93.  
  94.   <!-- Row 1: Main controls -->
  95.   <div class="controls">
  96.     <button id="stream" style="display:none">Start</button>
  97.     <button id="save">Save PNG</button>
  98.     <select id="palette">
  99.       <option value="gray">Grayscale</option>
  100.       <option value="iron">Ironbow</option>
  101.       <option value="fire">Fire</option>
  102.       <option value="hot">Hot</option>
  103.       <option value="cool">Cool</option>
  104.       <option value="rainbow">Rainbow</option>
  105.       <option value="viridis">Viridis</option>
  106.       <option value="plasma">Plasma</option>
  107.       <option value="magma">Magma</option>
  108.       <option value="inferno">Inferno</option>
  109.       <option value="turbo">Turbo</option>
  110.       <option value="ice">Ice</option>
  111.       <option value="lava">Lava</option>
  112.       <option value="wavelength">Wavelength</option>
  113.     </select>
  114.     <button id="autoRange">Auto Range</button>
  115.     <button id="doFFC">FFC</button>
  116.     <label><input type="checkbox" id="autoCheck"> Auto every frame</label>
  117.     <label><input type="checkbox" id="invertPalette"> Invert Palette</label>
  118.     <label><input type="checkbox" id="hotTrack"> Hot Track</label>
  119.     <label><input type="checkbox" id="showHistogram" checked> Histogram</label>
  120.     <label>Palette Repeat: <input type="number" id="paletteRepeat" min="1" max="10" value="1" step="1" style="width:46px"></label>
  121.   </div>
  122.  
  123.   <!-- Row 2: Auto-range controls -->
  124.   <div class="controls">
  125.     AutoRange Margin: <input type="range" id="autoRangeExtra" min="1" max="100" value="20"> <span id="autoRangeExtraVal">20</span>
  126.     &nbsp;&nbsp;
  127.     AutoRange Offset: <input type="range" id="autoRangeOffset" min="-100" max="100" value="0"> <span id="autoRangeOffsetVal">0</span>
  128.   </div>
  129.  
  130.   <!-- Row 3: Display controls -->
  131.   <div class="controls">
  132.     Offset: <input type="range" id="offset" min="6500" max="9000" value="7600"> <span id="offsetVal">0</span>
  133.     &nbsp;&nbsp;
  134.     Range: <input type="range" id="range" min="1" max="2500" value="255"> <span id="rangeVal">16383</span>
  135.     &nbsp;&nbsp;
  136.     Sharpness: <input type="range" id="sharpness" min="0" max="100" value="50"> <span id="sharpnessVal">50</span>
  137.   </div>
  138.  
  139.   <!-- Row 4: CLAHE -->
  140.   <div class="controls">
  141.     <label><input type="checkbox" id="claheEnable"> CLAHE</label>
  142.     Clip: <input type="range" id="claheClip" min="0.5" max="5" value="2" step="0.1"> <span id="claheClipVal">2</span>
  143.     Tiles:
  144.     <select id="claheTiles">
  145.       <option value="4">4x4</option>
  146.       <option value="8" selected>8x8</option>
  147.       <option value="16">16x16</option>
  148.     </select>
  149.   </div>
  150.  
  151.   <!-- Row 5: Dark Frame -->
  152.   <div class="controls">
  153.     <label><input type="checkbox" id="darkEnable"> Dark Frame</label>
  154.     <button id="captureDark">Capture Dark</button>
  155.     <button id="clearDark">Clear Dark</button>
  156.     <span id="darkStatus" style="color:#888">No dark frame</span>
  157.   </div>
  158.  
  159.   <!-- Row 6: Frame Averaging -->
  160.   <div class="controls">
  161.     <label><input type="checkbox" id="avgEnable"> Frame Avg</label>
  162.     Frames: <input type="range" id="avgFrames" min="2" max="16" value="4"> <span id="avgFramesVal">4</span>
  163.   </div>
  164.  
  165.   <!-- Row 6: Noise Reduction -->
  166.   <div class="controls">
  167.     <label><input type="checkbox" id="noiseEnable"> Noise Reduction</label>
  168.     <select id="noiseAlgo">
  169.       <option value="temporal">Temporal Avg</option>
  170.       <option value="gauss">Gaussian</option>
  171.       <option value="median">Median</option>
  172.       <option value="bilateral">Bilateral</option>
  173.     </select>
  174.     Strength: <input type="range" id="noiseStrength" min="1" max="8" value="3"> <span id="noiseStrengthVal">3</span>
  175.   </div>
  176.  
  177.   <!-- Row 6: Reference Frame -->
  178.   <div class="controls">
  179.     <button id="captureRef">Capture Ref</button>
  180.     <button id="clearRef">Clear Ref</button>
  181.     <select id="refMode">
  182.       <option value="off">Ref: Off</option>
  183.       <option value="sub">Subtract</option>
  184.       <option value="add">Add</option>
  185.     </select>
  186.     Strength: <input type="range" id="refStrength" min="0" max="100" value="100"> <span id="refStrengthVal">100</span>
  187.     <span id="refStatus" style="color:#888">No ref</span>
  188.   </div>
  189.  
  190.   <canvas id="c" width="640" height="480"></canvas>
  191.   <div class="stats" id="stats">Min: - | Avg: - | Max: - | FPS: -</div>
  192.  
  193.   <div class="section histogram-section" id="histogramSection">
  194.     <h3 style="margin:6px 0">Histogram</h3>
  195.     <canvas id="histogramCanvas" width="800" height="100"></canvas>
  196.     <canvas id="paletteCanvas" width="256" height="32"></canvas>
  197.   </div>
  198.  
  199. </div>
  200. <script src="raw.js"></script>
  201. </body>
  202. </html>
  203.  
Advertisement
Add Comment
Please, Sign In to add comment