일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- TradingVIew
- 이미지
- VUE
- FRONT
- JavaScript
- Chart
- frontend
- 리액트
- 프론트엔드
- form
- 상태관리
- number
- error
- vscode
- develop
- CSS
- err
- axios
- antd
- vue-cli-service
- react
- type
- useState
- 시멘틱태그
- Package
- Download
- components
- npm
- NeXT
- 리액트기초
Archives
- Today
- Total
개발쬬
[javascript | Vue] 이미지 다운로드 기능 만들기 (canvas/url활용) 본문
반응형
get으로 받은 소스를 화면에 뿌리고> 그 이미지를 다운로드 받으려면 canvas를 활용해 가능하다.
👉 template (표현되어질 부분)
<v-col class="pa-5 pt-8" style="text-align: center">
<canvas id="canvas" v-html="qrHtml" height="300"></canvas>
</v-col>
👉 template (다운로드 버튼)
<v-btn class="pl-3 mb-2" color="accent" @click="download">
다운받기<v-icon class="ml-1">mdi-arrow-down-bold-circle</v-icon>
</v-btn>
👉 methods
a 태그를 임의로 생성해 canvas 속성을 대입해 다운로드 기능을 동작하게 해준다
download() {
var a = document.createElement("a"); //
a.setAttribute("download", "파일이름" + ".png");
a.setAttribute(
"href",
document
.getElementById("canvas")
.toDataURL("image/png")
.replace("image/png", "image/octet-stream")
);
a.setAttribute("target", "_blank");
//이벤트 호출
a.dispatchEvent(
//생성된 a태그에 클릭이벤트 설정
new MouseEvent("click", {
view: window,
bubbles: false,
cancelable: true,
})
);
},
반응형
'쬬는 개발중' 카테고리의 다른 글
[axios] 엑셀 파일 다운로드 기능 구현하기 (0) | 2022.12.04 |
---|---|
[axios] 이미지 POST 기능이 제대로 동작하지 않을때 확인사항 (0) | 2022.12.02 |
[javascript] 문자 /n 줄바꿈 변환작업 (1) | 2022.12.02 |
[javascript] window.open 팝업권한 사파리 문제해결 (0) | 2022.11.29 |
[javascript] youtube embed 소스 자동재생 모바일에서 안된다면 (autoplay 이슈해결) | mobile 자동재생 안됨 (0) | 2022.11.25 |