|
<!DOCTYPE html> |
|
<html lang="ko"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>์ด๋ฏธ์ง ๊ฒน์น๊ธฐ ํธ์ง๊ธฐ (์ฌ๋ฌ ์ด๋ฏธ์ง ์ง์)</title> |
|
<link rel="stylesheet" href="style.css"> |
|
</head> |
|
<body> |
|
<div class="container"> |
|
<h1>์ด๋ฏธ์ง ๊ฒน์น๊ธฐ ํธ์ง๊ธฐ</h1> |
|
<p>๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐฐ๊ฒฝ ์ ๊ฑฐ๋ ์ด๋ฏธ์ง๋ฅผ ๋ฐฐ์นํ๊ณ ๊ฐ๊ฐ ์กฐ์ ํ ํ, ์กฐ์ ๋ ์ด๋ฏธ์ง๋ค๋ง PNG๋ก ์ถ์ถํฉ๋๋ค.</p> |
|
|
|
<div class="upload-container"> |
|
<div class="upload-box"> |
|
<span class="upload-label">1. ์๋ณธ ์ด๋ฏธ์ง ์ ํ</span> |
|
<input type="file" id="background-input" class="file-input" accept="image/*"> |
|
<label for="background-input" class="upload-button">์๋ณธ ์ด๋ฏธ์ง ์
๋ก๋</label> |
|
</div> |
|
<div class="upload-box"> |
|
<span class="upload-label">2. ๋ฐฐ๊ฒฝ ์ ๊ฑฐ๋ ์ด๋ฏธ์ง ์ ํ (์ถ์ถ๋ PNG, ์ฌ๋ฌ ๊ฐ ๊ฐ๋ฅ)</span> |
|
<input type="file" id="overlay-input" class="file-input" accept="image/*"> |
|
<label for="overlay-input" class="upload-button">๊ฒน์น ์ด๋ฏธ์ง ์
๋ก๋</label> |
|
</div> |
|
</div> |
|
|
|
<div class="control-panel"> |
|
<div class="control-group"> |
|
<h3>์์น ๋ฐ ํฌ๊ธฐ (์ ํ๋ ์ด๋ฏธ์ง)</h3> |
|
<div class="slider-container"> |
|
<label for="scale-slider">ํฌ๊ธฐ:</label> |
|
<input type="range" id="scale-slider" min="10" max="500" value="100" disabled> |
|
<span id="scale-value" class="value-display">100%</span> |
|
</div> |
|
<div class="slider-container"> |
|
<label for="rotation-slider">ํ์ :</label> |
|
<input type="range" id="rotation-slider" min="0" max="360" value="0" disabled> |
|
<span id="rotation-value" class="value-display">0ยฐ</span> |
|
</div> |
|
</div> |
|
|
|
<div class="control-group"> |
|
<h3>์์ ์ด๋ฏธ์ง ์ ํ</h3> |
|
<div id="example-images-container" style="display: flex; justify-content: space-around; margin-top: 15px;"> |
|
<img src="1.png" alt="Example 1" class="example-img" data-filename="1.png" style="width: 160px; height: 160px; cursor: pointer; border: 1px solid #ccc;"> |
|
<img src="2.png" alt="Example 2" class="example-img" data-filename="2.png" style="width: 160px; height: 160px; cursor: pointer; border: 1px solid #ccc;"> |
|
<img src="3.png" alt="Example 3" class="example-img" data-filename="3.png" style="width: 160px; height: 160px; cursor: pointer; border: 1px solid #ccc;"> |
|
<img src="4.png" alt="Example 4" class="example-img" data-filename="4.png" style="width: 160px; height: 160px; cursor: pointer; border: 1px solid #ccc;"> |
|
</div> |
|
</div> |
|
<div class="control-group filter-panel"> |
|
</div> |
|
|
|
<div class="control-group" id="layers-panel"> |
|
<h3>๋ ์ด์ด ๋ชฉ๋ก</h3> |
|
<div class="layer-option"> |
|
<button id="delete-layer-btn" class="danger-btn" disabled>์ ํ ๋ ์ด์ด ์ญ์ </button> |
|
</div> |
|
<div id="layers-list" class="layers-list"> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div class="canvas-container"> |
|
<canvas id="canvas" width="800" height="600"></canvas> |
|
</div> |
|
|
|
|
|
<div class="filter-panel"> |
|
<h3>ํํฐ ์ค์ (์ ํ ๋ ์ด์ด์ ์ ์ฉ)</h3> |
|
|
|
<div class="filter-sliders"> |
|
<div class="filter-slider-container"> |
|
<label for="temperature-slider">์์จ๋:</label> |
|
<input type="range" id="temperature-slider" min="-100" max="100" value="0" step="5" class="large-slider"> |
|
<span id="temperature-value" class="value-display">0</span> |
|
</div> |
|
|
|
<div class="filter-slider-container"> |
|
<label for="brightness-slider">๋ฐ๊ธฐ:</label> |
|
<input type="range" id="brightness-slider" min="0" max="200" value="100" step="5" class="large-slider"> |
|
<span id="brightness-value" class="value-display">100%</span> |
|
</div> |
|
|
|
<div class="filter-slider-container"> |
|
<label for="contrast-slider">๋๋น:</label> |
|
<input type="range" id="contrast-slider" min="50" max="150" value="100" step="5" class="large-slider"> |
|
<span id="contrast-value" class="value-display">100%</span> |
|
</div> |
|
|
|
<div class="filter-slider-container"> |
|
<label for="saturation-slider">์ฑ๋:</label> |
|
<input type="range" id="saturation-slider" min="0" max="200" value="100" step="5" class="large-slider"> |
|
<span id="saturation-value" class="value-display">100%</span> |
|
</div> |
|
</div> |
|
|
|
<div class="filter-buttons"> |
|
<button id="reset-filter-btn" class="danger-btn">ํํฐ ์ด๊ธฐํ</button> |
|
</div> |
|
</div> |
|
|
|
<div class="button-container"> |
|
<button id="generate-btn" class="primary-btn" disabled>์ด๋ฏธ์ง ํฉ์น๊ธฐ</button> |
|
<button id="reset-all-btn" class="danger-btn">์ฒ์๋ถํฐ</button> |
|
<button id="download-btn" class="info-btn" disabled>๋ค์ด๋ก๋</button> |
|
</div> |
|
|
|
<div class="preview-container" id="preview-container"> |
|
<h3>ํฉ์ฑ๋ ์ด๋ฏธ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ</h3> |
|
<img id="preview-img" alt="ํฉ์ฑ ์ด๋ฏธ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ"> |
|
</div> |
|
</div> |
|
|
|
|
|
<script src="filter.js"></script> |
|
<script src="script.js"></script> |
|
</body> |
|
</html> |