python css base64.encodestring

css
Blogger概要のデザインが少し変わった?
気のせいか少しだけ体感パフォーマンスが上がってる?
「ページビュー」の文字が大きめで、中途半端に折り返されている。
「エントリー」ではなく「Entry」。いっそのこと「PV」でいいのにね。

IEの対応状況でCSSの画像埋込みをどうするか変わるのだけど、
よく使う画像拡張子判別によるbase64.encodestringのスクリプト。
そのままだと改行文字が入るので取り除くだけで大丈夫なよう。
もちろん小さな画像に使用する。

#!/usr/bin/env python
# encoding:utf-8
import os, sys, base64

ext_type = ['png','gif','jpg','jpeg']

def b64(s):
 if not os.path.exists(s): return
 ext = os.path.splitext(s)[1][1:]
 if not ext: return
 data = None
 if ext in ext_type:
  data = 'data:image/%s;base64,' % ext
  try:
   d = base64.encodestring(open(s).read())
  except:
   data = None
  else:
   data += d.replace("\n",'')
 return data

if __name__=='__main__':
 a = sys.argv[1:]
 if a:
  print b64(a[0])
 else:
  print 'b64.py base64-target-image.gif'
  print 'ext_type: ' + ', '.join(ext_type)