今天去新竹空軍基地後, 跑到"原夜市鴨肉麵"去吃炒麵

很久之前, 工作的公司就在新竹武陵路那 (再過去就是空軍基地), 下班回到租屋的地方的路線會經過這裡, 偶爾會去這邊吃, 不過那已經是好多年前的事了, 今天順便去回味一下

點了炒麵, 跟炒大腸:

P1010824P1010823

這炒麵看起來好像不怎起眼, 也沒看到鴨肉, 其實鴨肉都在底下啦! 只是現在鴨肉越給越少, 好像就跟單炒麵差不多, 不過這家還算不差

地點在新竹中正路跟經國路交叉口那邊, 旁邊有家7-11, 對面有停車場

Yamaha 這邊環境真不錯呀

前篇提到利用CutyCapt來產生Web page thumbnail, 不過畢竟CutyCapt是C++寫的, build出來也是一個執行檔, 寫完上一篇就有股衝動想用PyQt來做, 反正一樣可以利用Qt/WebKit, 原理應該相同的

沒想到, 真的那麼簡單, 只用了二十幾行code就可以辦到了

這邊主要利用到的一個class就是 QWebPage , 透過這個class我們就可以很簡單的達成這任務

為了程式的重複利用性, 我把它包裝成一個class PageRender:

class PageRender(QObject):

    def __init__(self, url, outfile, scale):

       QObject.__init__(self)

       self.outfile = outfile

       self.scale = scale

       self.web = QWebPage()

       self.web.mainFrame().load(QUrl(url))

       self.connect(self.web, SIGNAL(“loadFinished(bool)”) ,self.loadFinished)

    def loadFinished(self, b):

        print “load finished”

        self.web.setViewportSize(self.web.mainFrame().contentsSize())

        image = QImage(self.web.viewportSize(), QImage.Format_ARGB32);

        painter = QPainter(image)

        self.web.mainFrame().render(painter)

        painter.end()

        thumbnail = image.scaledToWidth(self.scale)

        thumbnail.save(self.outfile)

        app.exit(0)

 在Constructor那邊做的就是把loadFinished跟我們實際處理save to thumbnail的function connect在一起

而在loadFinished那邊就是實際render到image的部份, 這邊要注意的是:

self.web.setViewportSize(self.web.mainFrame().contentsSize())

這是把QWebPage的View port size設成跟實際content一樣大, 後面接著我們就可以建立QImage跟其相對映的painter, 然後用QWebFrame的"render()“把它實際輸出到image

最後scale到我們想要的大小(pixels)

這邊是一個實際call它的範例:

p = PageRender("http://www.yahoo.com.tw”, “sssss.png”, 200)

結果:

實際的程式可以在此下載

本來想寫一篇這主題的, 後來想想, 跟自己工作太過接近, 寫了也不好, 所以這篇單純來推薦一篇好文:

Social Networking: The Future

其中的"Social Graph will become portable", 其實我想的稍微多了點, 不過還是先推薦這篇就好