2013-07-03 52 views
-5

我想自动将带有png图像的html文件转换为内嵌在单个html文件中的base64图像。有没有这样的即用型工具?将html图像转换为内联base64

+0

Java程序员可以使用[这](http://stackoverflow.com/questions/9388264/jeditorpane -with-inline-image)来制作一个工具。 –

回答

2

这是我最近使用简单的Python脚本...它作为一个过滤器:

#!/usr/bin/env python 
# -*- coding:utf-8 -*- 

import fileinput 
import re 
import base64 
import mimetypes 
import os 


def replacement(match): 

    fn = match.groups()[0] 

    if os.path.isfile(fn): 
     return 'src="data:%s;base64,%s"' % (mimetypes.guess_type(fn)[0], base64.b64encode(open(fn, 'rb').read())) 

    return match.group() 



def main(): 

    fi = fileinput.FileInput(openhook=fileinput.hook_encoded("utf8")) 

    while True: 
     line = fi.readline() 
     if not line: 
      break 
     print re.sub(r'src="(.*?)"', replacement, line).encode('utf-8'), 



if __name__ == '__main__': 
    main()