웹 프론트엔드 H5 튜토리얼 Demonstration_html5 튜토리얼 기술로 캔버스를 사용하여 이미지 필터 효과 얻기

Demonstration_html5 튜토리얼 기술로 캔버스를 사용하여 이미지 필터 효과 얻기

May 16, 2016 pm 03:48 PM
canvas 사진 필터

이는 카메라가 TV 화면을 캡처할 때 나타나는 점 모양의 거친 효과를 시뮬레이션하는 매우 흥미로운 특수 효과입니다. 입자의 크기는 변환 행렬을 통해 구현되며 임의로 조정할 수 있습니다. 연구에 관심이 있는 친구들은 더 많은 효과를 시도해 볼 수 있습니다. 코드는 최적화되지 않았으며 대략적인 데모일 뿐입니다.

1. 이미지 데이터 가져오기

코드 복사
코드는 다음과 같습니다. 다음:

img.src = 'http://bloglaotou.duapp.com/wp-content/themes/frontopen2/tools/filter/image2.jpg'
canvas.width = img.width ;
canvas.height = img.height;
var context = canvas.getContext(“2d”)
context.drawImage(img, 0, 0); context.getImageData (0, 0, canvas.width, canvas.height)


2. 필터 매트릭스 설정

코드 복사코드는 다음과 같습니다.
var m_VideoType=0;
var Pattern=new Array(); >스위치(m_VideoType)
{
case0://VIDEO_TYPE.VIDEO_STAGGERED:
{
pattern = [
0, 1,
0, 2,
1, 2 ,
1, 0,
2, 0,
2, 1,
]
break
}
case1://VIDEO_TYPE.VIDEO_TRIPED:
{
패턴 = [
0,
1,
2,
]
break
}
case2://VIDEO_TYPE.VIDEO_3X3:
{
패턴 =
[
0, 1, 2,
2, 0, 1,
1, 2, 0,
]
break; }
기본값:
{
패턴 =
[
0, 1, 2, 0, 0,
1, 1, 1, 2, 0,
0, 1, 2, 2, 2,
0, 0, 1, 2, 0,
0, 1, 1, 1, 2,
2, 0, 1, 2, 2,
0, 0, 0, 1, 2,
2, 0, 1, 1, 1,
2, 2, 0, 1, 2,
2, 0, 0, 0, 1,
1, 2, 0, 1, 1,
2, 2, 2, 0, 1,
1, 2, 0, 0, 0,
1, 1, 2, 0, 1 ,
1, 2, 2, 0,
];
break;
}
}
var Pattern_width = [ 2, 1, 3, 5 ]; >var Pattern_height = [6, 3, 3, 15 ];



3. 필터링된 데이터 가져오기


코드 복사

코드는 다음과 같습니다.
for ( var x = 0; x < canvasData.width; x ) { for ( var y = 0; canvasData.height; y ) { // 배열의 픽셀 인덱스
var idx = (x y * canvasData.width) * 4; .data[idx 0];
var g = canvasData.data[idx 1];
var b = canvasData.data[idx 2]
var nWidth = 패턴_폭[m_VideoType]; nHeight = 패턴_높이[m_VideoType];
var index = nWidth * (y % nHeight) (x % nWidth);
index = 패턴[index]
if (index == 0)
var r = fclamp0255(2 * r);
if (index == 1)
var g = fclamp0255(2 * g)
if (index == 2)
var b = fclamp0255( 2 * b);// 회색조 값 지정
canvasData.data[idx 0] = r; // 빨간색 채널
canvasData.data[idx 1] = g; >canvasData.data[idx 2] = b ; // 파란색 채널
canvasData.data[idx 3] = 255; // 알파 채널
// 검정색 테두리 추가
if(x < 8 | | y (canvasData.height - 8))
{
canvasData.data[idx 1] = 0;
canvasData.data[idx 2] = 0;
}
}
}


4. 필터링된 데이터






코드 복사

코드는 다음과 같습니다.
context .putImageData(canvasData, 0, 0 );

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 이미지 필터 효과를 구현하는 방법 PHP에서 이미지 필터 효과를 구현하는 방법 Sep 13, 2023 am 11:31 AM

PHP 이미지 필터 효과를 구현하려면 특정 코드 예제가 필요합니다. 소개: 웹 개발 과정에서 이미지 필터 효과는 이미지의 생생함과 시각적 효과를 향상시키는 데 자주 사용됩니다. PHP 언어는 다양한 그림 필터 효과를 얻기 위한 일련의 함수와 방법을 제공합니다. 이 기사에서는 일반적으로 사용되는 그림 필터 효과와 그 구현 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 밝기 조정 밝기 조정은 사진의 밝기와 어둠을 변경할 수 있는 일반적인 사진 필터 효과입니다. PHP에서는 imagefilte를 사용하여

캔버스 화살표 플러그인이란 무엇입니까? 캔버스 화살표 플러그인이란 무엇입니까? Aug 21, 2023 pm 02:14 PM

캔버스 화살표 플러그인에는 다음이 포함됩니다. 1. 간단하고 사용하기 쉬운 API가 있으며 사용자 정의 화살표 효과를 만들 수 있는 Fabric.js 2. 화살표 그리기 기능을 제공하고 다양한 화살표를 만들 수 있는 Konva.js 스타일 3. 풍부한 그래픽 처리 기능을 제공하고 다양한 화살표 효과를 얻을 수 있는 Pixi.js 4. 화살표 스타일과 애니메이션을 쉽게 생성하고 제어할 수 있는 Two.js 5. 다양한 화살표 효과를 생성할 수 있는 Arrow.js 6. 대략적인 .js, 손으로 그린 ​​화살표 등을 만들 수 있습니다.

html2canvas에는 어떤 버전이 있나요? html2canvas에는 어떤 버전이 있나요? Aug 22, 2023 pm 05:58 PM

html2canvas 버전에는 html2canvas v0.x, html2canvas v1.x 등이 포함됩니다. 자세한 소개: 1. html2canvas v0.x는 html2canvas의 초기 버전입니다. 최신 안정 버전은 v0.5.0-alpha1입니다. 2. html2canvas v1.x는 html2canvas의 새 버전입니다.

캔버스 시계의 세부 사항은 무엇입니까? 캔버스 시계의 세부 사항은 무엇입니까? Aug 21, 2023 pm 05:07 PM

캔버스 시계의 세부 사항에는 시계 모양, 눈금 표시, 디지털 시계, 시, 분 및 초침, 중심점, 애니메이션 효과, 기타 스타일 등이 포함됩니다. 자세한 소개: 1. 시계 모양, 캔버스를 사용하여 시계 모양으로 원형 다이얼을 그릴 수 있으며 다이얼의 크기, 색상, 테두리 및 기타 스타일을 설정할 수 있습니다. 2. 눈금선, 눈금선을 그립니다. 3. 디지털 시계, 다이얼에 디지털 시계를 그려서 현재 시간과 분을 표시할 수 있습니다. 4. 시침, 분침, 초침 등.

uniapp은 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 방법을 구현합니다. uniapp은 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 방법을 구현합니다. Oct 18, 2023 am 10:42 AM

uniapp에서 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 방법에는 특정 코드 예제가 필요합니다. 1. 소개 모바일 장치의 인기로 인해 점점 더 많은 응용 프로그램이 모바일 단말기에 다양한 차트와 애니메이션 효과를 표시해야 합니다. Vue.js를 기반으로 하는 크로스 플랫폼 개발 프레임워크인 uniapp은 캔버스를 사용하여 차트와 애니메이션 효과를 그리는 기능을 제공합니다. 이 기사에서는 uniapp이 캔버스를 사용하여 차트 및 애니메이션 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 2. 캔버스

tkinter 캔버스에는 어떤 속성이 있습니까? tkinter 캔버스에는 어떤 속성이 있습니까? Aug 21, 2023 pm 05:46 PM

tkinter 캔버스 속성에는 bg, bd, 릴리프, 너비, 높이, 커서, 강조 배경, 강조 색상, 강조 두께, 삽입 배경, 삽입 너비, 선택 배경, 선택 전경, xscrollcommand 속성 등이 포함됩니다. 자세한 소개

html2canvas는 어떤 스타일에 유효하지 않습니까? html2canvas는 어떤 스타일에 유효하지 않습니까? Nov 24, 2023 pm 03:25 PM

잘못된 스타일에는 CSS3 애니메이션 및 전환, CSS 필터 효과, CSS3 복잡한 그래픽 및 경로, 일부 CSS3 기능, 의사 요소 및 일부 CSS 기능, Z-색인, 배경 이미지 및 그라데이션 등이 포함됩니다. 자세한 소개: 1. CSS3 애니메이션 및 전환: html2canvas는 CSS3 애니메이션 및 전환 효과를 완전히 캡처하지 못할 수 있습니다. 최종 스타일을 캡처하려고 시도하지만 변환 과정에서 이러한 애니메이션과 전환이 손실될 수 있습니다. 2. CSS 필터 효과: 흐림 및 그림자와 같은 필터는 변환 과정에서 유지되지 않을 수 있습니다.

캔버스 프레임워크를 배우고 일반적으로 사용되는 캔버스 프레임워크에 대해 자세히 설명합니다. 캔버스 프레임워크를 배우고 일반적으로 사용되는 캔버스 프레임워크에 대해 자세히 설명합니다. Jan 17, 2024 am 11:03 AM

Canvas 프레임워크 탐색: 일반적으로 사용되는 Canvas 프레임워크가 무엇인지 이해하려면 특정 코드 예제가 필요합니다. 소개: Canvas는 풍부한 그래픽 및 애니메이션 효과를 얻을 수 있는 HTML5에서 제공되는 그리기 API입니다. 그리기의 효율성과 편의성을 향상시키기 위해 많은 개발자들이 다양한 Canvas 프레임워크를 개발했습니다. 이 기사에서는 일반적으로 사용되는 몇 가지 캔버스 프레임워크를 소개하고 독자가 이러한 프레임워크를 사용하는 방법을 더 깊이 이해하는 데 도움이 되는 특정 코드 예제를 제공합니다. 1. EaselJS 프레임워크 Ea

See all articles