어제 오늘 내일

[HTML/CSS] 이미지 어둡게 하는 3가지 방법 (brightness, background-color, linear-gradient) 본문

IT/HTML&CSS

[HTML/CSS] 이미지 어둡게 하는 3가지 방법 (brightness, background-color, linear-gradient)

hi.anna 2022. 7. 30. 06:31

 

이미지를 어둡게 하기

  1. filter: brightness()
  2. opacity, background-color
  3. linear-gradient()

 

 

1. filter: brightness()

CSS의 filter에 적용되는 brightness 함수는 

주어진 이미지의 밝기를 조절합니다.

 

  허용값  

  • 숫자
    • 1은 100%입니다.
  • 퍼센트
    • 100% 미만은 이미지를 어둡게 합니다.
    • 100% 초과는 이미지를 밝게 합니다.
    • 0%는 이미지를 검은색으로 만듭니다.
brightness(100%); /* 원본 이미지 */
brightness(0%); /* 검은색 */
brightness(200%); /* 밝기 2배 */
brightness(0.4); /* 40% */

 

  brightness() 예제  

my_brightness.html

<!DOCTYPE html>
<html>
<head>
<title>이미지 밝기</title>
<link rel="stylesheet" href="css/my_brightness.css" />
</head>
<body>
<div>
<img src="./img/puppy.jpg" class="my_img1">
<p>brightness 0%</p>
</div>
<div>
<img src="./img/puppy.jpg" class="my_img2">
<p>brightness 50%</p>
</div>
<div>
<img src="./img/puppy.jpg" class="my_img3">
<p>brightness 100% (원본)</p>
</div>
<div>
<img src="./img/puppy.jpg" class="my_img4">
<p>brightness 200%</p>
</div>
</body>
</html>

 

my_brightness.css

div {
width: 300px;
float: left;
border: 1px solid;
}
img {
width: 300px;
}
.my_img1 {
filter: brightness(0%)
}
.my_img2 {
filter: brightness(50%)
}
.my_img3 {
filter: brightness(100%)
}
.my_img4 {
filter: brightness(200%)
}

 

결과

 

 

2. opacity, backbround-color

my_brightness.html

<!DOCTYPE html>
<html>
<head>
<title>이미지 밝기</title>
<link rel="stylesheet" href="css/my_brightness.css" />
</head>
<body>
<div class="outer_div">
<img src="./img/puppy.jpg">
<p>원본</p>
</div>
<div class="outer_div">
<div class="my_div">
<img src="./img/puppy.jpg" class="my_img">
</div>
<p>opacity 0.5, background-color: black</p>
</div>
</body>
</html>

 

my_brightness.css

.my_img {
opacity: 0.5;
}
.my_div {
background-color: black;
}
.outer_div {
width: 300px;
float: left;
border: 1px solid;
}
img {
width: 300px;
}

 

결과

opacity: 0.5;

먼저 이미지의 투명도를 0.5로 지정하여 투명하게 만들었습니다.

 

background-color: black;

이미지를 감싸고 있는 div의 배경색을 검정색으로 지정하였습니다.

 

 

 

3. linear-gradient (배경 이미지 어둡게 하기)

linear-gradient는 둘 이상의 색깔 사이의 변화를 선형으로 부드럽게 표현해줍니다.

css에서 background-image를 지정할 때,

이 linear-gradient 함수를 추가하여 배경의 색상 변화를 표현할 수 있습니다.

 

  linear-gradient 예제  

my_brightness.html

<!DOCTYPE html>
<html>
<head>
<title>이미지 밝기</title>
<link rel="stylesheet" href="css/my_brightness.css" />
</head>
<body>
<div class="outer_div">
<div class="bg_1"></div>
<p>원본</p>
</div>
<div class="outer_div">
<div class="bg_2"></div>
<p>linear-gradient</p>
</div>
</body>
</html>

 

my_brightness.css

.bg_1 {
background-image: url("../img/puppy.jpg");
width: 300px;
height: 180px;
}
.bg_2 {
background-image: linear-gradient(rgba(0, 0, 0, 0.527), rgba(0, 0, 0, 0.5)),
url("../img/puppy.jpg");
width: 300px;
height: 180px;
}
.outer_div {
width: 300px;
float: left;
border: 1px solid;
}

 

결과

background-image: linear-gradient(rgba(0, 0, 0, 0.527), rgba(0, 0, 0, 0.5)), url("../img/puppy.jpg");

css에서 배경 이미지를 지정할 때, linear-gradient() 함수를 추가하였습니다.

rgb(0, 0, 0)은 검정색입니다.

그리고, rgba(0, 0, 0, 0.527)의 4번째 값인 0.527은 투명도를 나타냅니다.

즉, linear-gradient(rgba(0, 0, 0, 0.527), rgba(0, 0, 0, 0.5))는

검정색 배경의 투명도를 0.527에서 0.5로 미세하게 변경하는 그라데이션을 화면에 표현하라는 의미입니다.

약간의 트릭을 이용하여, 배경 이미지를 어둡게 만들어 보았습니다.

 

 

 

반응형
Comments