data URIs로 image 생성하기

2018.02.21 21:17

졸리운_곰 조회 수:92

data URIs로 image 생성하기

흔한 일은 아니지만 data URIs를 이용하여 html을 작성할 필요가 생기는 경우가 가끔있습니다. (이미 만들어진) 크기가 작은 이미지를 이미지 파일없이 html에 만들어 넣는다거나 하는 일 따위 말이죠.예를 들어 메일을 html로 작성할 때나 간단한 페이지를 작성해 임시로 사용할 html같은 경우에 필요할 수 있겠습니다.

<img> 요소의 src속성에 base64인코딩 방식으로 소스를 넣는 방식을 이용하는데, 기본적인 형식은 아래 같습니다.

Syntax
 data:[<mediatype>][;base64],<data>

Sample
data:,Hello%2C%20World!
 Simple text/plain data
data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D
 base64-encoded version of the above
data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E
 An HTML document with <h1>Hello, World!</h1>
data:text/html,alert('hi');
 An HTML document that executes a JavaScript alert. Note that the closing script tag is required.
data:image/jpeg;base64,
 
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
 An HTML fragment embedding a picture of a small red dot

그런데 data URIs라는 놈이 재미있습니다. 이미지 말고도 여러 타입을 넣을 수 있네요. URLEncoding방식을 이용해 텍스트나 스크립트를 만들어 넣을 수도 있고, Base64를 이용해 이미지를 만들어 쓸 수도 있습니다. 오늘은 이미지만 만들어 넣어보겠습니다.

만들어 넣고 싶은 이미지가 있다고 가정합니다. 아래와 같은 이미지 처럼요.
HTML5.png

html source는 아래와 같습니다.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>data URIs image jpg</title>
  </head>
  <body>
    <h1>Hello, world!</h1>
    <p><img height="375" width="375" alt="HTML5" src=""></p>
  </body>
</html>

<img>요소의 src속성이 비어있습니다. 이곳에 URI형식에 맞도록 이미지를 넣어보겠습니다.

위에서 설명한대로 “data:image/jpeg;base64,”로 시작합니다. data형식의 jpeg인 image이며 base64로 인코딩되어 있다는 뜻입니다. 이 뒤에 붙을 이미지를 텍스트로 인코딩 해보겠습니다.

인터넷을 검색하면 php나 javascript로 인코딩 디코딩하는 소스도 많고, 인코딩 디코딩 해주는 사이트도 있습니다. 여러가지 방법 중에 ‘크롬 브라우저’를 이용해 보겠습니다.

먼저 브라우저에 이미지를 불러옵니다

Cap 2016-05-05 04-05-42-435.png

도구를 열기위해 오른클릭한 후 ‘검사(N)’을 선택합니다.

Cap 2016-05-05 04-06-05-627.png

엘리먼트 패널이 열립니다.

Cap 2016-05-05 04-15-58-272.png

이미지 주소에서 오른클릭 한 후 “Open link in Resources panel”을 선택해 리소스 패널을 엽니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

Cap 2016-05-05 04-16-39-249.png

리소스 패널의 선택한 이미지가 바로 선택되어 나옵니다.

Cap 2016-05-05 04-19-16-296.png

여기 오른쪽 이미지 위에서 오른 클릭해 “Copy image as Data URL”을 선택하면 필요한 data URL이 복사 됩니다.

Cap 2016-05-05 04-19-21-963.png

다시 html소스에 가서 붙여넣기 합니다.
아래와 같은 소스가 되면 완성입니다.

Cap 2016-05-05 04-24-50-992.png

이 파일을 저장후 브라우저에서 열어보면 이미지가 잘 뜨는 걸 확인할 수 있습니다.

Cap 2016-05-05 04-28-47-483.png

위의 소스는 이미지 파일을 조금 큰 걸 사용했는데, 실제로는 작은 이미지를 사용하는게 좋을 것 같네요.

이를 응용하여 이미지 파일처럼 별도의 파일로 나뉘어진 소스들을 한 개의 html로 만들 수 있음을 알 수 있습니다.

 

data URIs: developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs

Base64 encoding and decoding (Javascript): developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

 [출처] https://hsmtree.wordpress.com/2016/05/05/data-uris%EB%A1%9C-image-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0/

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
658 인공지능이 의식을 가질 수 있는가 file 졸리운_곰 2018.03.07 96
657 당근마켓에서 딥러닝 활용하기 - 불량 게시물 검사 file 졸리운_곰 2018.03.06 130
656 머신러닝 단기집중과정 by google 졸리운_곰 2018.03.04 89
655 한글 형태소 분석의 이해 NLP file 졸리운_곰 2018.03.04 83
654 루아 알고리즘 라이브러리 lua-algorithms stack queue tree file 졸리운_곰 2018.03.03 1385
653 VB.NET 알고리즘 구현 - Stack, Queue Data Type file 졸리운_곰 2018.02.27 310
652 TopCoder 사용 방법 (탑코더 시작하기) file 졸리운_곰 2018.02.26 360
651 MXNet을 활용한 이미지 분류 앱 개발하기 file 졸리운_곰 2018.02.25 118
650 [Artificial Intelligence / MXNet] MXNet을 이용한 Classification 문제 풀기 file 졸리운_곰 2018.02.25 66
649 [Artificial Intelligence / MXNet] Windows 환경에 MXNet 설치하기 file 졸리운_곰 2018.02.25 93
648 [Artificial Intelligence / MXNet] MXNet 소개 file 졸리운_곰 2018.02.25 98
647 Blender 단축키 file 졸리운_곰 2018.02.25 156
646 Blender 단축키 정리 모음 file 졸리운_곰 2018.02.25 164
645 [자바스크립트] 선택한 이미지 base64 코드로 변환하여 화면에 보여주기 file 졸리운_곰 2018.02.21 253
644 [제목] 한번의 커넥션으로 이미지 모두 전송하는 방법 졸리운_곰 2018.02.21 101
» data URIs로 image 생성하기 file 졸리운_곰 2018.02.21 92
642 Base64 이미지 사용하기 file 졸리운_곰 2018.02.21 111
641 html img , a에 직접 이미지, 파일 데이터 넣기 졸리운_곰 2018.02.21 110
640 BASE64 로 인코딩 한 이미지 data를 직접 HTML 문서에 추가하는 방법 외 file 졸리운_곰 2018.02.21 296
639 Torch7 따라 해 보기 file 졸리운_곰 2018.02.19 88
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED