이 글은 Canvas 크로스 도메인 솔루션에 대한 소개입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Canvas 도메인 간 문제를 해결하는 방법은 무엇입니까? 여기에서는 Canvas를 사용하여 그리는 동안 발생하는 도메인 간 문제와 해결 방법을 기록합니다.
먼저 구현 방법을 살펴보겠습니다.
구현 방법
대상 이미지는 일반적으로 이미지 + 텍스트로 구성됩니다. 다양한 크기의 그림이든 예측할 수 없는 텍스트이든 캔버스 API drawImage 및 fillText 메서드를 사용하여 수행할 수 있습니다.
기본 프로세스는 다음과 같습니다.
캔버스 컨텍스트 가져오기--ctx
const canvas = document.querySelector(selector) const ctx = canvas.getContext('2d')
드로잉
#🎜🎜 #그림 무시 캔버스에 있는 내용은 drawImage를 사용하여 직접 캔버스에 그릴 수 있습니다.const image = new Image() image.src = src image.onload = () => { ctx.save() // 这里我们采用以下参数调用 this.ctx.drawImage(image, dx, dy, dWidth, dHeight) this.ctx.restore() }
canvas.toBlob(blob => { // 你要的 blob }, mimeType, encoderOptions)
Failed to execute 'toBlob' on 'HTMLCanvasElement': Tainted canvases may not be exported.
Access to image at 'https://your.image.src' from origin 'https://your.website' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
도메인 전체에서 특정 이미지 리소스를 사용하고 서비스가 Access-Control-Allow-Origin 헤더 정보에 올바르게 응답하지 않는 경우 다음과 같습니다. 보고된 오류 메시지:
Access to image at 'https://your.image.src' from origin 'https://your.website' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
원격의 웹사이트 정보를 무단으로 가져와서 발생하는 사용자 개인정보 유출을 방지하기 위해(GPS 및 기타 정보 등 자세한 내용은 Exif로 검색하시면 됩니다), 캔버스 toBlob(), toDataURL() 또는 getImageData()를 호출하면 보안 오류가 발생합니다.
Failed to execute 'toBlob' on 'HTMLCanvasElement': Tainted canvases may not be exported.
const image = new Image() image.crossOrigin = 'Anonymous' image.src = src
위 내용은 Canvas 크로스 도메인 솔루션 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!