一種用于生成異形窗口的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實施方式涉及計算機領(lǐng)域,更具體地,本發(fā)明的實施方式涉及用于生成 異形窗口的方法和裝置。
【背景技術(shù)】
[0002] 本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的 描述不因為包括在本部分中就承認是現(xiàn)有技術(shù)。
[0003] 目前所使用的電子設(shè)備的操作系統(tǒng)上通常都安裝有異形窗口應(yīng)用,其可以由用戶 自定義窗口的形狀、顏色、透明度等屬性,例如媒體播放器,時鐘,殺毒軟件圖標(biāo)等。這種異 形窗口應(yīng)用通?;诜謱哟翱冢↙ayered windows)技術(shù)來創(chuàng)建異形窗口。分層窗口技術(shù)的 主要特點包括:允許窗口像素點的alpha值與屏幕像素點alpha值混合,其中alpha值是表 示位圖中像素不透明度的參數(shù);窗口像素點alpha值為0 (全透明)時,鼠標(biāo)可以穿越當(dāng)前 窗口被下一層窗口捕獲。根據(jù)對異形窗口外觀的具體需求,可以分別采用分層窗口技術(shù)中 的兩個 API :SetLayeredWindowAttributes 和 UpdateLayeredWindow 來創(chuàng)建異形窗口。
[0004] SetLayeredWindowAttributes適合創(chuàng)建外觀比較簡單、無漸變效果的異形窗口, 其存在以下缺點:當(dāng)需要產(chǎn)生不規(guī)則形狀的異形窗口時,必須有一種顏色用于識別色(表 示在異形窗口中該顏色所在區(qū)域變更為全透明),因而異形窗口色彩表現(xiàn)受到限制;異形 窗口像素點最多只能有三個alpha值,無法實現(xiàn)透明度漸變效果(比如陰影),導(dǎo)致異形窗 口的表現(xiàn)形式受限;當(dāng)需要輸出形狀極其復(fù)雜的窗口時(比如直接輸出文字),邊緣鋸齒殘 留非常明顯,表現(xiàn)效果差。
[0005] UpdateLayeredWindow適用于創(chuàng)建外觀復(fù)雜的異形窗口,該方案可以將位圖直接 輸出到屏幕來獲得異形窗口,通常位圖可以通過以下兩種方式來獲?。?br>[0006] 第一,如果該異形窗口應(yīng)用的外觀只有固定的一種或幾種(比如媒體播放器、殺 毒軟件圖標(biāo)等),可以通過在創(chuàng)建異形窗口前通過繪圖工具(如Photoshop等)繪制來獲取 位圖,異形窗口應(yīng)用運行時直接加載或者響應(yīng)于用戶的操作請求加載所獲取的位圖。然而 這種方式有以下缺點:所獲取的位圖數(shù)量有限,交互形式單一,只適合于界面較為單一、對 視覺和交互要求不高的桌面應(yīng)用,比如上面提到的傳統(tǒng)的播放器面板,殺毒軟件圖標(biāo)等;無 法根據(jù)實時數(shù)據(jù)生成位圖,比如曲線圖、柱狀圖、餅圖等統(tǒng)計類型圖片;窗口外觀一般只能 由本地程序控制,不方便維護和程序開發(fā),靈活性較低。
[0007] 第二,如果該異形窗口應(yīng)用的外觀跟實時數(shù)據(jù)相關(guān)(比如電子時鐘、股票實時走 勢、天氣預(yù)報等),或者該異形窗口應(yīng)用的外觀需要響應(yīng)于用戶的操作請求而相應(yīng)地變化, 則可以在應(yīng)用運行時通過GDI (Graphics Device Interface)、GDI+或Direct3D等圖形繪 制接口繪制來獲取位圖。然而,這種獲取位圖的方式也存在較多缺點:繪制過程非常復(fù)雜, 成本高;程序繪圖模型在應(yīng)用生成后無法新增或者變更,除非升級該應(yīng)用;缺乏成熟的開 源的數(shù)據(jù)可視化解決方案,開發(fā)和維護的技術(shù)難度較大;窗口外觀一般只能由本地程序控 制,不方便維護和程序開發(fā),靈活性較低。
【發(fā)明內(nèi)容】
[0008] 現(xiàn)有技術(shù)中的生成異形窗口的技術(shù)中,如果需要根據(jù)實時數(shù)據(jù)來生成異形窗口且 使異形窗口的外觀能夠響應(yīng)于用戶的操作請求而相應(yīng)地變化,則僅能夠通過復(fù)雜的繪制過 程來獲取位圖數(shù)據(jù),開發(fā)和維護的成本較高;用于獲取位圖數(shù)據(jù)的程序繪圖模型在應(yīng)用生 成后無法新增或者變更,除非升級該應(yīng)用;缺乏成熟的開源的數(shù)據(jù)可視化解決方案,開發(fā)和 維護的技術(shù)難度大;異形窗口外觀一般只能由本地程序控制,不方便維護和程序開發(fā),靈活 性較低。
[0009] 因此在現(xiàn)有技術(shù)中,用于生成異形窗口的方法和裝置用戶體驗不佳,計算過程復(fù) 雜、難度大、成本高、靈活性低,這是非常令人煩惱的過程。
[0010] 為此,非常需要一種改進的用于生成異形窗口的方法和裝置,以便豐富異形窗口 應(yīng)用的外觀和交互形態(tài),可以將異形窗口應(yīng)用的外觀數(shù)據(jù)部署在遠端服務(wù)器上以提高程序 開發(fā)、維護的靈活性,并且顯著提高異形窗口應(yīng)用的開發(fā)、維護的效率并顯著降低開發(fā)、維 護難度和成本。
[0011] 在本上下文中,本發(fā)明的實施方式期望提供一種用于生成異形窗口的方法和裝 置。
[0012] 在本發(fā)明實施方式的第一方面中,提供了一種用于生成異形窗口的方法,包括:封 裝并初始化Chromium嵌入式框架;創(chuàng)建初始窗口;由所述Chromium嵌入式框架基于所述 初始窗口創(chuàng)建離屏渲染瀏覽器;通過由所述離屏渲染瀏覽器加載頁面內(nèi)容數(shù)據(jù)生成位圖數(shù) 據(jù);將所述位圖數(shù)據(jù)轉(zhuǎn)換為內(nèi)存位圖;基于所述內(nèi)存位圖,通過UpdateLayeredWindow生成 并輸出異形窗口。
[0013] 在本發(fā)明實施方式的第二方面中,提供了一種用于生成異形窗口的裝置,包括:封 裝模塊,被配置為封裝并初始化Chromium嵌入式框架;初始窗口創(chuàng)建模塊,被配置為創(chuàng)建 初始窗口;離屏渲染瀏覽器創(chuàng)建模塊,被配置為通過所述Chromium嵌入式框架基于所述初 始窗口創(chuàng)建離屏渲染瀏覽器;位圖數(shù)據(jù)生成模塊,被配置為通過由所述離屏渲染瀏覽器加 載頁面內(nèi)容數(shù)據(jù)生成位圖數(shù)據(jù);轉(zhuǎn)換模塊,被配置為將所述位圖數(shù)據(jù)轉(zhuǎn)換為內(nèi)存位圖;異 形窗口生成模塊,被配置為基于所述內(nèi)存位圖,通過UpdateLayeredWindow生成并輸出異 形窗口。
[0014] 根據(jù)本發(fā)明實施方式的用于生成異形窗口的方法和裝置,能夠豐富異形窗口應(yīng)用 的外觀和交互形態(tài);能夠根據(jù)基于實時數(shù)據(jù)的頁面內(nèi)容來生成位圖數(shù)據(jù),并可根據(jù)需要生 成任意數(shù)量的位圖;可以將異形窗口應(yīng)用的外觀數(shù)據(jù)部署在遠端服務(wù)器上以提高程序開 發(fā)、維護的靈活性;優(yōu)化了生成異形窗口的過程,顯著減少了數(shù)據(jù)轉(zhuǎn)換的時間且提高了轉(zhuǎn)換 效率,減少了 CPU的使用率,節(jié)約了處理器的資源,并改善了異形窗口應(yīng)用的性能;并且顯 著提高異形窗口應(yīng)用的開發(fā)、維護的效率并顯著降低開發(fā)、維護難度和成本。
【附圖說明】
[0015] 通過參考附圖閱讀下文的詳細描述,本發(fā)明示例性實施方式的上述以及其他目 的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若 干實施方式,其中:
[0016] 圖IA和IB示意性地示出了根據(jù)本發(fā)明實施方式的應(yīng)用場景;
[0017] 圖2示意性地示出了根據(jù)本發(fā)明實施方式的用于生成異形窗口方法的流程示意 圖;
[0018] 圖3示意性地示出了根據(jù)本發(fā)明另一個實施方式的用于生成異形窗口方法的流 程不意圖;
[0019] 圖4示意性地示出了根據(jù)本發(fā)明實施方式的用于生成異形窗口裝置的示意圖;
[0020] 圖5示意性地示出了根據(jù)本發(fā)明另一實施方式的用于生成異形窗口裝置的示意 圖;以及
[0021] 圖6示意性地示出了根據(jù)本發(fā)明另一實施方式的用于生成異形窗口的程序產(chǎn)品。
[0022] 在附圖中,相同或?qū)?yīng)的標(biāo)號表不相同或?qū)?yīng)的部分。
【具體實施方式】
[0023] 下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這 些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何 方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能 夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0024] 本領(lǐng)域技術(shù)技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、 方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟 件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
[0025] 根據(jù)本發(fā)明的實施方式,提出了一種用于生成異形窗口的方法和裝置。
[0026] 在本文中,需要理解的是,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何 命名都僅用于區(qū)分,而不具有任何限制含義。
[0027] 下面參考本發(fā)明的若干代表性實施方式,詳細闡釋本發(fā)明的原理和精神。
[0028] 發(fā)明概述
[0029] 本發(fā)明人發(fā)現(xiàn),在創(chuàng)建異形窗口時,可以通過Chromium嵌入式框架基于所創(chuàng)建的 初始窗口創(chuàng)建離屏渲染瀏覽器,通過由離屏渲染瀏覽器來加載頁面內(nèi)容數(shù)據(jù)來生成位圖數(shù) 據(jù),將位圖數(shù)據(jù)轉(zhuǎn)換為內(nèi)存位圖,并基于內(nèi)存位圖通過UpdateLayeredWindow生成并輸出 異形窗口。此外,還提供了接收在異形窗口中的操作事件的接口,可以將所捕獲的操作事件 通過Chromium嵌入式框架通知離屏渲染瀏覽器,來更新位圖數(shù)據(jù),以觸發(fā)異形窗口頁面響 應(yīng)于操作事件而相應(yīng)地變化。這樣,豐富了異形窗口應(yīng)用的外觀和交互形態(tài),可以將異形窗 口應(yīng)用的外觀數(shù)據(jù)部署在遠端服務(wù)器上以提高程序開發(fā)、維護的靈活性,并且顯著提高異 形窗口應(yīng)用的開發(fā)、維護的效率,并顯著降低開發(fā)、維護難度和成本。
[0030] 在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方 式。
[0031] 應(yīng)用場景總覽
[0032] 首先參考圖IA和1B,為根據(jù)本發(fā)明的示例性實施方式的一種異形窗口的示意圖。 如圖IA和圖IB所示,異形窗口可以是桌面卡拉OK歌詞窗口,可以隨著音樂的播放相應(yīng)地 顯示歌詞,異形窗口可以具有不規(guī)則的形狀(例如歌詞的文字形狀),文字邊緣可以有陰 影,且文字可以有逐步推進的動畫效果(例如可以通過變換窗口中文字的顏色、透明度或 灰度來表示音樂或歌詞的播放進度)。如圖IB所示,當(dāng)將鼠標(biāo)移動