sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

1. html syntax to use base64 data source

 

<img src="data:image/jpg;base64,[....base64 code...]">

 

 

2. web상에서 간단히 이미지 파일을 base64 바이트 배열 문자열로 변환하는 방법

 

    1) https://www.base64-image.de/ 로 접속

 

    2) 다음 단계에서 이미지 파일을 드래그엔드롭

스크린샷_2017-01-03_오후_3.21.34.png

 

    3) 다음 화면에서 copy image 나 show code 로 결과물을 확인

스크린샷_2017-01-03_오후_3.22.48.png

 

    4) show code 인 경우 다음과 같은 화면

스크린샷_2017-01-03_오후_3.22.56.png

 

3. java 프로그램에서 base64 변환 코드

 

    1) Servlet

public static String getBase64String( String[] imageUrl, String content ) throws Exception{
 
    if( imageUrl.length > 0 )
    {
        int imageUrlLength = imageUrl.length;
        String[] imageString = new String[ imageUrlLength ];
 
        for( int i = 0; i < imageUrlLength; i++ )
        {
            String filePathName = imageUrl[i].replace(“file:///”, “”);
            String fileExtName = filePathName.substring( filePathName.lastIndexOf(“.”) + 1);
 
            FileInputStream inputStream = null;
            ByteArrayOutputStream byteOutStream = null;
 
            try
            {
                File file = new File( filePathName );
 
                if( file.exists() )
                {
                    inputStream = new FileInputStream( file );
                    byteOutStream = new ByteArrayOutputStream();
 
                    int len = 0;
                    byte[] buf = new byte[1024];
                    while( (len = inputStream.read( buf )) != -1 ) {
                        byteOutStream.write(buf, 0, len);
                    }
 
                    byte[] fileArray = byteOutStream.toByteArray();
                    imageString[i] = new String( Base64.encodeBase64( fileArray ) );
 
                    String changeString = “data:image/”+ fileExtName +”;base64, “+ imageString[i];
                    content = content.replace(imageUrl[i], changeString);
                }
            }
            catch( IOException e)
            {
                e.printStackTrace();
            }
            finally
            {
                inputStream.close();
                byteOutStream.close();
            }
        }
    }
 
    return content;
}

 

    2) JSP

String base64Str = "...base64 code..."

byte[] imageInByte =  Base64.decodeBase64(base64Str);

response.setContentType("image/jpg");

response.setContentLength(imageInByte.length);

response.getOutputStream().write(imageInByte);

 

 

 

* 참고로 image element(<img>)의 src 속성에 base64 바이너리 데이터 스트링을 사용하는 방식은 IE9 이상 브라우저에서 지원한다

   IE8 이하 브라우저에서는 URL 길이 제한으로 인해 브라우저 엔진에서 URL 파싱 에러가 발생하기 때문이다

번호 제목 글쓴이 날짜 조회 수
128 characters from ISO 8859-1 황제낙엽 2020.11.10 32420
127 [ActiveX] CAB파일 수동 설치(레지스트리 등록) 방법 황제낙엽 2017.03.16 3571
126 What’s wrong with extending the DOM 황제낙엽 2011.03.28 2993
125 iframe 다루기 황제낙엽 2017.02.27 1937
124 네이버의 무료 나눔 글꼴 황제낙엽 2020.05.06 1342
» <img> image 엘리먼트에서 이미지를 base64로 인코딩해서 사용하기 file 황제낙엽 2017.04.01 1228
122 Document documentMode Property file 황제낙엽 2011.10.04 1066
121 User Agent 에 관련된 링크 황제낙엽 2017.11.20 1004
120 encoding, charset, code page, UTF-8, UNICODE ... file 황제낙엽 2013.08.07 965
119 [MSDN] Document Object Model Prototypes (IE8) 황제낙엽 2011.03.24 934
118 ASCII Table and Description file 황제낙엽 2011.08.10 925
117 pt, px, em, % 비교표 file 황제낙엽 2011.05.24 872
116 document.domain (from mozilla.org) 황제낙엽 2013.03.13 719
115 Canvas 곡선 그리기 file 황제낙엽 2016.08.22 611
114 [보안] 혼합 콘텐츠(Mixed Content) 방지 황제낙엽 2017.04.13 564
113 Flash OBJECT and EMBED tag attributes 황제낙엽 2011.03.02 487
112 Canvas 도형의 클릭 이벤트 처리 황제낙엽 2016.08.22 480
111 로드밸런싱(L4)+아파치를 운영시 etag제거로 캐시 성능 최적화 file 황제낙엽 2018.03.28 477
110 스타일-보더 테스트 관련 레퍼런스 황제낙엽 2013.01.04 461
109 ActiveX 에서 CLASSID 가 맞지 않을때의 현상 황제낙엽 2017.02.17 443