사양
- BASE : HTML + Javascript (jQuery)
- API : html2canvas, FileSaver
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js"></script>
<title>이미지캡처</title>
</head>
<body>
<div id="example" style="width: 500px;">
안녕하세요 이미지 캡쳐 예제입니다.<br />
안녕하세요 이미지 캡쳐 예제입니다.<br />
안녕하세요 이미지 캡쳐 예제입니다.<br />
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ4nsgRjLZntKqK6j0kKjHsYJtQQGsLo27TeDJhy3p85qp9m9WB">
<!-- 구글 상업정 수정 이미지 검색 활용 -->
<!-- 외부 링크는 Access-Control-Allow-Origin 가 해당 서버에서 허용이 되지 않으면 캡쳐 대상제외 -->
</div>
<script type="text/javascript">
function sample() {
var background = document.getElementById('example').style.background;
if(background == "") {
document.getElementById('example').style.background = "#fff";
}
html2canvas(document.getElementById('example'), {
useCORS: true, // 다른사이트의리소스가있을때활성화(그러나...Access-Control-Allow-Origin 필요)
onrendered: function(canvas) {
canvas.toBlob(function(blob) {
saveAs(blob, 'download.png');
});
// $("#test").html('<img src=' + canvas.toDataURL("image/png") + '>');
}
});
}
</script>
<div id="test"></div>
<button onclick='sample();'>캡처</button>
</body>
</html>PS. 중요 한것이 이미지등의 외부관련 자료 일경우 Access-Control-Allow-Origin 가 발생할 수 있어. IMG에서 나오더라도 html2canvas 호출시에 에러를 발 생 한다. 다시 한번 재생성 하는 구조를 가지고 있는 듯하다.
참조 - 제작자/사
https://html2canvas.hertzen.com/https://github.com/eligrey/FileSaver.js/
참조 - CDN
'촌놈 - 취미로하는개발 > 웹' 카테고리의 다른 글
| [Javascript] 자바스크립트 숫자만 허용 하는 다양한 방법 (0) | 2018.10.22 |
|---|---|
| [Javascript] 자바스크립트 LPAD, RPAD 좌우를 특정문자로 채우기 (0) | 2018.10.19 |
| [서블릿] HttpServletRequest 이용 모바일,타블릿,PC 구분 (0) | 2018.10.12 |
| [SPRING] 모바일(mobile) device 자동 체크하기 (0) | 2018.10.12 |
| [웹툴소개] HTML, 자바스크립트 정리 사이트 (0) | 2018.10.10 |