>  기사  >  웹 프론트엔드  >  흑백 사진 효과를 만들기 위해 CSS3를 사용하여 회색조 필터를 작성하는 방법 소개

흑백 사진 효과를 만들기 위해 CSS3를 사용하여 회색조 필터를 작성하는 방법 소개

高洛峰
高洛峰원래의
2017-03-13 17:55:171592검색

이 글에서는 CSS3를 사용하여 흑백 사진 효과를 만드는 방법을 주로 소개합니다. CSS3의 필터는 매우 강력하며, 필요한 친구들이 참조할 수 있는 방법도 소개합니다.

CSS3의 필터 기능을 사용하면 PhotoShop이나 많은 JavaScript 또는 PHP 코드를 사용하지 않고도 쉽고 편리하게 이미지를 처리할 수 있습니다. 이 속성은 최신 Firefox, Safari 및 Chrome 브라우저에서 이미 지원되며 포괄적인 대체 기술, 심지어 IE 브라우저를 통해 이 효과를 시뮬레이션할 수 있습니다.

이 글에서는 표준 테스트 이미지 Lena Söderberg(역자 주: Lena의 아름다운 사진은 이미지 압축을 위한 표준 테스트 이미지로 사용됨)를 데모로 사용하고 CSS를 사용하여 흑백으로 변환해 보겠습니다. 흰색 이미지. 아래에서는 CSS의 이 기능을 사용하여 색조, 흐림, 밝기, 대비 및 기타 효과를 조정하는 방법을 설명합니다. 렌더링:
흑백 사진 효과를 만들기 위해 CSS3를 사용하여 회색조 필터를 작성하는 방법 소개

CSS3 회색조 필터

CSS3를 사용하여 이미지 색상을 희석하는 것은 이보다 더 쉬울 수 없습니다. 이 CSS 문을 클래스로 작성할 수 있으므로 원하는 효과가 있는 그림을 발견하면 클래스를 직접 추가할 수 있습니다.

img.desaturate { filter: grayscale(100%); }


물론 현재 브라우저가 CSS3를 사용하는 경우 브라우저 기능에 대한 자체적인 실험적 접두사를 추가해야 하므로 가장 먼저 해야 할 일은 브라우저:

img.desaturate { filter: grayscale(100%);   
-webkit-filter: grayscale(100%);   
-moz-filter: grayscale(100%);   
-ms-filter: grayscale(100%);   
-o-filter: grayscale(100%);   
}


특정 사진에 사용하고 싶다면 매우 간단합니다. 클래스만 추가하면 됩니다:

<img src=lena-söderberg.png alt="Lena Söderberg" style=width:512px;height:512px class=desaturate>


그렇습니다. ## SVG 필터 효과를 추가하세요. 이 기능은 현재 Chrome 18 이상에서만 사용할 수 있으며 다른 브라우저에도 곧 지원이 추가될 예정입니다. Firefox 4+에서 동일한 효과를 얻으려면 SVG 필터를 사용해야 할 수도 있습니다. 다음 코드를 사용하여 새 별도 파일 saturate.svg를 만들었습니다.

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">   
<filter id="greyscale">   
<feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0
0.3333 0.3333 0.3333 0 0
0.3333 0.3333 0.3333 0 0
0  0  0  1 0"/>   
</filter>   
</svg>




이 SVG 코드에 겁먹지 마세요. 위의 행렬 시퀀스는 약간 복잡하지만요. 이 코드를 일반적인 "작은 파일"에 직접 복사하여 붙여넣는 것이 좋습니다. 위의 매트릭스 변경 사항을 자세히 소개하는 글을 또 쓸 예정이므로 여기서는 자세히 다루지 않겠습니다. 위의 SVG 파일 참조를 사용하여 HTML 페이지에 삽입하려는 CSS 코드는 다음과 같습니다.

img.desaturate{   
filter: grayscale(100%);   
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%);   
-ms-filter: grayscale(100%); -o-filter: grayscale(100%);   
filter: url(desaturate.svg#greyscale);   
}


IE 호환성의 경우:

이제 우리 코드는 향후 브라우저와 최신 버전의 Chrome 및 Firefox 4+와 호환됩니다. IE 6-9를 호환성 목록에 추가하려면 Microsoft의 서툴지만 효과적인 필터를 사용해야 합니다.

img.desaturate{   
filter: grayscale(100%);   
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%);   
-ms-filter: grayscale(100%); -o-filter: grayscale(100%);   
filter: url(desaturate.svg#greyscale);   
filter: gray;   
}


여전히 이전 버전의 Webkit을 탐색하고 싶다면 커널 브라우저 호환성:

img.desaturate{   
filter: grayscale(100%);   
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%);   
-ms-filter: grayscale(100%); -o-filter: grayscale(100%);   
filter: url(desaturate.svg#greyscale);   
filter: gray;   
-webkit-filter: grayscale(1);   
}



모든 브라우저에서 이 시각적 효과를 얻으려면(방문자가 JavaScript를 지원한다고 가정) jQuery 또는 Greyscale.js를 사용하여 이미지를 수정하여 색상을 제거하세요.

위에 작성한 CSS 코드를 사용하면 PhotoShop을 사용하지 않고도 이미지를 흑백으로 바꿀 수 있습니다. CSS를 사용하여 이 기능을 구현하는 것은 매우 쉽게 수정할 수 있습니다. 예를 들어, 탈색 매개변수를 100%에서 50%로 변경하면 이미지에 기본 색상과 흑백이 혼합된 효과가 나타나는 것을 볼 수 있습니다.

기타 효과:

또한 흑백 사진에 다른 필터 효과를 추가할 수 있습니다:

-webkit-filter:blur(5px);  //模糊,此处为5像素   

-webkit-filter:sepia(0.5);  //叠加褐色,取值范围0-1,此处表示50%的褐色   

-webkit-filter:brightness(0.5);  //亮度,取值范围0-1,5倍亮度(数字为0时为正常样式,为1时表示的是100%亮度,无法看到图片)   

-webkit-filter:hue-rotate(30deg); //色相(按照色相环进行旋转,顺时针方向,红-橙-黄-黄绿-绿-蓝绿-蓝-蓝紫-紫-紫红-红)此处为叠加黄色滤镜   

-webkit-filter:invert(1);  //反色,取值范围0-1,0为原图,1为彻底反色之后,0.5为灰色   

-webkit-filter:saturate(4);  //饱和度,取值范围0~*,0为无饱和度,1为原图,值越高饱和度越大   

-webkit-filter:contrast(2);  //对比度,取值范围0~*,0为无对比度(灰色),1为原图,值越高对比度越大   

-webkit-filter:opacity(0.8);  //透明度,取值范围0~1,0为全透明,1为原图   

-webkit-filter:drop-shadow(17px 17px 20px black); //阴影



위 내용은 흑백 사진 효과를 만들기 위해 CSS3를 사용하여 회색조 필터를 작성하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.