- Today
- Total
CODE CAVE
CSS 색상과 이미지 섞기 - 혼합(blend) 본문
CSS가 발전함에 따라 이제 포토샵으로 해야만 했던 작업들이 코딩으로 가능해지고 있습니다.
이번 포스팅은 그 중 이미지 혼합 기능인 blend-mode 에 대한 실험입니다.
색상과 이미지를 혼합하는 기능을 어디서 쓸까 생각하다가 운영중인 쇼핑몰에서 색상과 재질을 선택해서 미리 볼 수 있는 Custom Option 기능을 만드는데 활용했습니다.
[재질과 색상의 혼합] - http://www.trymoon.kr - NO BRAND BUT GOOD SENSE
위 화면은 신발 쇼핑몰에서 혼합 모드를 응용하여 개발한 것입니다.
정의해놓은 재질을 선택하고, 색상을 선택하면 재질 이미지와 색상을 혼합하여 결과를 아래 보여주는 방식입니다.
위 화면을 개발하기전, 제가 블랜드 모드 관련 샘플로 만들어놓은 화면입니다.
위 샘플은 대부분의 이미지와 색상에서 문제 없이 잘 동작하였지만, 모든 것엔 예외가 있듯 이 기능에도 예외사항이 있습니다.
블랙이랑 화이트는 위 일반적인 방법으로 혼합하면 이미지가 거의 안보이고 원색상만 보이는 현상이 있습니다,
위 샘플은 이런 예외 경우를 포괄하여 만든 샘플이니 도움되시길 바래요~
위 샘플은 Github에 올렸으니 필요하시면 다운로드 가능합니다.
https://github.com/kkotkkio/css-blend-image-color
혼합모드 사용 방법은 간단합니다.
CSS 몇줄이면 끝입니다.
아래처럼 이미지와 색상을 지정하고, blend-mode를 color-burn으로 설정하시면 이미지와 색상이 혼합됩니다.
background-image: url(image.jpg);
background-color: #8f1313;
background-blend-mode: color-burn;
하지만 전에 언급했던 대로, 완전한 검정색과 완전한 흰색에서는 CSS를 위처럼 작성하면 그냥 색상만 나옵니다.
이 경우엔 검정과 흰색의 대처 방법이 조금 다른데요, 먼저 검은색은 #333 처럼 #000에 가까운 검정계열의 색상코드를 설정하시면 됩니다. 실험 결과 섞이면서 좀 더 어두워지기 때문에 거의 검정이나 다름없어 보였습ㄴ다.
.black {
background-color: #333;
}
그리고 흰색의 경우엔 blend-mode를 luminosity로 설정 하시면 됩니다.
background-blend-mode: luminosity;
이 혼합모드를 안쓰고 color-burn을 써도 혼합은 되긴 하지만, 거의 혼합된 느낌이 안들더라구요.
luminosity를 쓰시면 훨씬 잘 혼합된 느낌으로 나옵니다.
하지만 그래도 이미지에 따라 (특히 이미지도 흰색계열일때) 뭔가 어색하고 제대로 혼합된 느낌이 안날 수 있습니다.
그럴땐 밝기 필터를 조정하여 해결할 수 있습니다.
아래 문법대로 상황에 맞게 조절하셔서 사용하시면 되겠습니다.
-webkit-filter: brightness(1.10);
'Web > Front-End' 카테고리의 다른 글
[JS] 숫자 3자리 단위마다 콤마(,) 넣는 2가지 방법 (0) | 2023.02.05 |
---|---|
[JS] Swiper - 자동 슬라이드, 반복, 콜백 ... (0) | 2017.04.27 |
CSS로 핀터레스트/피키캐스트 같은 리스트 구현하기 (3) | 2017.03.08 |
무료 관리자페이지 템플릿! 부트스트랩 'gentelella-master' (1) | 2016.11.02 |
[JavaScript/jQuery] 세번째 자리 마다 콤마 찍기 (0) | 2016.11.01 |
- AD
- For 개발자