Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS filter 속성으로 흑백 이미지 만드는 방법 완벽 가이드

웹 페이지에서 컬러 이미지를 흑백으로 변환하고 싶다면 CSS의 filter 속성에 grayscale(회색조) 값을 지정하는 것이 가장 간단한 방법입니다. 별도의 이미지 편집 없이 코드 한 줄로 흑백 효과를 적용할 수 있어 매우 유용합니다.

filter 속성은 흑백 변환뿐만 아니라 블러(blur), 드롭 섀도(drop-shadow), 밝기(brightness), 대비(contrast) 등 다양한 시각적 특수 효과를 요소에 적용할 때 사용됩니다.

문법(Syntax)

CSS filter 속성의 기본 문법은 다음과 같습니다.

Selector {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
}

grayscale(100%)은 이미지를 완전한 흑백으로 만들며, 백분율 값을 조절하면 부분적인 회색조 효과도 줄 수 있습니다. 예를 들어 grayscale(50%)을 지정하면 원본 색상이 절반만 제거된 중간 톤의 이미지가 됩니다.

또한 -webkit-filter는 구버전 Safari 등 웹킷 기반 브라우저와의 호환성을 위해 함께 작성해 주는 것이 좋습니다.

예제 1: 짝수 번째 이미지에 흑백 효과 적용하기

아래 예제에서는 :nth-of-type(even) 선택자를 사용하여 짝수 번째 이미지에만 흑백 필터를 적용합니다.

<!DOCTYPE html>
<html>
   <head>
      <style>
         img {
           margin: 2%;
           border-radius: 25%;
         }
         img:nth-of-type(even) {
           filter: grayscale(100%);
           -webkit-filter: grayscale(100%);
         }
      </style>
   </head>
   <body>
      <img src="https://images.unsplash.com/photo-1611825715408-826f2b19c43f?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=200&ixlib=rb-1.2.1&q=80&w=200" alt="img from unsplash">
      <img src="https://images.unsplash.com/photo-1611825715408-826f2b19c43f?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=200&ixlib=rb-1.2.1&q=80&w=200" alt="img from unsplash">
  </body>
</html>

실행 결과

위 코드를 실행하면 첫 번째 이미지는 원본 컬러 그대로 유지되고, 두 번째 이미지만 흑백으로 표시됩니다.

CSS filter 속성으로 흑백 이미지 만드는 방법 완벽 가이드

예제 2: 홀수 번째 이미지에 흑백 효과 적용하기

이번에는 :nth-of-type(odd) 선택자를 사용하여 홀수 번째 이미지에만 흑백 필터를 적용해 보겠습니다.

<!DOCTYPE html>
<html>
   <head>
      <style>
         img {
           margin: 2%;
         }
         img:nth-of-type(odd) {
           filter: grayscale(100%);
           -webkit-filter: grayscale(100%);
         }
      </style>
   </head>
   <body>
      <img src="https://images.unsplash.com/photo-1611781750917-8777ab68668a?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=256&ixlib=rb-1.2.1&q=80&w=256">
      <img src="https://images.unsplash.com/photo-1611781750917-8777ab68668a?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=256&ixlib=rb-1.2.1&q=80&w=256">
  </body>
</html>

실행 결과

위 코드를 실행하면 첫 번째 이미지는 흑백으로, 두 번째 이미지는 원본 컬러로 표시됩니다.

CSS filter 속성으로 흑백 이미지 만드는 방법 완벽 가이드

마무리 및 활용 팁

CSS의 filter: grayscale() 속성을 활용하면 자바스크립트나 포토샵 없이도 손쉽게 흑백 이미지 효과를 구현할 수 있습니다. 실무에서는 다음과 같이 응용할 수 있습니다.

  • 호버 효과: 평소에는 흑백 이미지를 보여주고, 마우스를 올리면(:hover) 컬러로 전환하는 인터랙션 구현
  • 갤러리 디자인: 여러 이미지 중 특정 이미지만 강조하기 위해 나머지를 흑백 처리
  • 트랜지션 추가: transition: filter 0.3s;를 함께 사용하면 부드러운 색상 전환 애니메이션 가능

grayscale 값은 0%부터 100%까지 자유롭게 조절할 수 있으므로, 프로젝트의 분위기와 디자인 의도에 맞게 다양하게 활용해 보시기 바랍니다.