티스토리 뷰
영상에는 픽셀마다 색상에 대한 값이 있다.
이 값에 원하는 만큼 수를 더하면 밝아지고, 빼면 어두워진다.
원하는 수는 슬라이드바로 받아오도록 하자.
var value = parseInt(document.getElementById("brightI").value);
밝기 조절을 위해서는 pixel + value > 255 대입해야 한다.
다만, 오버플로우를 막아야 하므로 if문을 사용하자.
if (pixel + value > 255){
pixel = 255;
}
else if (pixel + value < 0) {
pixel = 0;
}
else{
pixel += value;
}
완성된 함수식
function brightImage() { // 영상 밝기 알고리즘
// (중요!) 출력 영상의 크기를 결정... 알고리즘에 따름.
outHeight = inHeight;
outWidth = inWidth;
// 출력 2차원 배열을 준비
outImageArray = new Array(outHeight); // 256짜리 1차원 배열
for(var i=0; i<outHeight; i++)
outImageArray[i] = new Array(outWidth);
// ***** 진짜 영상처리 알고리즘 *****
var value = parseInt(document.getElementById("brightI").value);
for(var i=0; i<inHeight; i++) {
for (var k=0; k<inWidth; k++) {
// 문자 --> 숫자
pixel = inImageArray[i][k].charCodeAt(0);
// **** 요기가 핵심 알고리즘. (밝게하기)
if (pixel + value > 255){
pixel = 255;
}
else if (pixel + value < 0) {
pixel = 0;
}
else{
pixel += value;
}
// 숫자 --> 문자
outImageArray[i][k] = String.fromCharCode(pixel);
}
}
displayImage();
}
얼마나 밝게 할지는 값을 받아와야 하므로 버튼을 만들고,
어둡게 하기 위해서는 값을 빼야 하므로 슬라이드바에는 -(마이너스)값도 들어가야 한다.
이는 min에 -255를 주면 된다.
<span type="button" id="chaedo" onclick="document.getElementById('brightI').style.display='block'">밝기</span>
<input type="range" max="255" min="-255" value="0" id="brightI" onclick="brightImage()" style = 'display: none'>
반응형
LIST
'공부합시다 > Javascript' 카테고리의 다른 글
[영상처리] 흑백처리 함수 만들기 (0) | 2021.04.01 |
---|---|
[클론코딩] 그림판 만들기 (0) | 2021.03.23 |
[영상처리] 밝게 하기 (0) | 2021.03.22 |
[영상처리] 캔버스 크기 지정 (0) | 2021.03.22 |
5일차 과제 (0) | 2021.03.19 |
댓글