In [1]:
import spynner, os, sys
import time
import os
from cStringIO import StringIO
from PyQt4.QtWebKit import QWebSettings
from IPython.html.widgets import ImageWidget, HTMLWidget, IntProgressWidget
from IPython.display import display, Image
from PyQt4.QtCore import QBuffer, QIODevice
from PyQt4.QtGui import QImage
import cv2
import numpy as np
from PIL import Image as PIL_Image
from IPython.display import display, Image
from io import BytesIO
def img_to_png(ima, cvt=None):
if cvt:
ima = cv2.cvtColor(ima, cvt)
im = PIL_Image.fromarray(ima)
bio = BytesIO()
im.save(bio, format='png')
return bio.getvalue()
def display_img_array(ima, cvt=None, **kwargs):
display(Image(img_to_png(ima, cvt=cvt) , format='png', **kwargs))
In [2]:
debug_stream = StringIO()
browser = spynner.Browser(debug_level=spynner.ERROR, debug_stream=sys.stderr)
browser.create_webview()
browser.show()
settings = browser.webview.settings()
# settings.setAttribute(QWebSettings.AutoLoadImages, False) # uncomment this if you only need text
browser.webview.setFixedHeight(720)
browser.webview.setFixedWidth(1280)
browser.webview.resize(1280, 720)
settings.setFontFamily(2, u'思源黑体')
In [3]:
url = "file:///home/tjw/src/hualienpy/pyconcn_zhs2.html"
In [66]:
browser.load(url)
Out[66]:
In [67]:
for i in range(100):
browser.webview.repaint()
browser.sendKeys('body',[ord(' ')])
time.sleep(1)
browser.webview.repaint()
browser.webview.repaint()
fn = "s"+browser.url[browser.url.find('#/')+2:].replace('/', '_')+".png"
print fn
sys.stdout.flush()
buffer = QBuffer()
buffer.open(QIODevice.ReadWrite)
qimg = browser.snapshot().save(buffer, "PNG")
strio = StringIO()
strio.write(buffer.data())
buffer.close()
strio.seek(0)
pimg = PIL_Image.open(strio).convert('RGBA')
new_data = []
for c in pimg.getdata():
if max(c[0],c[1],c[2])-min(c[0],c[1],c[2])<10 and c[0] > 128:
new_data.append((0,0,0,int(385-c[0]*3/2) ))
else:
new_data.append(c)
pimg.putdata(new_data)
pimg.save(fn, 'PNG')
if 'The' in fn:
break