国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

提詞器軟件的四種實(shí)現(xiàn)方式

2014-07-07 13:48:09杜歆文
電視技術(shù) 2014年2期
關(guān)鍵詞:文本框鏡像字體

杜歆文

(蘇州廣播電視總臺(tái),江蘇 蘇州 215006)

提詞器軟件的四種實(shí)現(xiàn)方式

杜歆文

(蘇州廣播電視總臺(tái),江蘇 蘇州 215006)

隨著應(yīng)用和技術(shù)的發(fā)展,臺(tái)內(nèi)原有的提詞器軟件漸漸不能滿足使用需求,因此需要對(duì)其進(jìn)行改進(jìn)。在實(shí)際過程中嘗試了許多方法,介紹了4種提詞器軟件的實(shí)現(xiàn)方式,剖析其原理,介紹了實(shí)現(xiàn)方法,提供部分代碼,并對(duì)4種方式的優(yōu)劣進(jìn)行比較,同時(shí)為平板設(shè)備上的提詞器軟件做準(zhǔn)備。

提詞器;字體;鏡像;翻轉(zhuǎn);Windows呈現(xiàn)基礎(chǔ)

提詞器是通過一個(gè)高亮度的顯示器件顯示文稿內(nèi)容,并將顯示內(nèi)容反射到攝像機(jī)鏡頭前的一塊呈45°的專用鍍膜玻璃上,把臺(tái)詞反射出來,使得演講者在看演講詞的同時(shí),也能面對(duì)攝像機(jī)。由于鏡面反射,要想看到正確的圖像,顯示器必須顯示鏡像圖像。蘇州臺(tái)現(xiàn)有提詞器軟件是十多年前自行開發(fā)的,當(dāng)時(shí)CRT是主流顯示器,對(duì)于CRT顯示器實(shí)現(xiàn)鏡像顯示很容易,只需要將行偏轉(zhuǎn)輸出信號(hào)反接即可。在LCD顯示器時(shí)代,通過硬件實(shí)現(xiàn)鏡像輸出就比較麻煩,只能通過更換屏幕控制電路完成。這不是一種很經(jīng)濟(jì)的實(shí)現(xiàn)方法,隨著設(shè)備老化、備件減少,蘇州臺(tái)決定更新提詞器軟件。

提詞器軟件結(jié)構(gòu)很簡單,打開或粘貼文本文件,以鏡像方式全屏輸出。雖然有廠商提供成品,但還是決定自行設(shè)計(jì)開發(fā),在開發(fā)過程中,研究并嘗試了一些方法。

1 方式一:圖像翻轉(zhuǎn)

這種方法是常規(guī)解決方法,根據(jù)文字內(nèi)容生成一張圖片,顯示圖片并使其滾動(dòng)。

提詞器通常至少需要用到顯卡的2路輸出:1路輸出接操作屏幕,以下簡稱主屏;1路輸出連接到攝像機(jī)前的屏幕,以下簡稱副屏。在主屏文本框編輯內(nèi)容完成后,生成一張圖片臨時(shí)文件,使圖片在副屏顯示,并控制其上下移動(dòng)。由于玻璃的反射,需要副屏左右顛倒鏡像顯示。對(duì)于圖片實(shí)現(xiàn)鏡像較為容易,左右像素交換即可。

2 方式二:字體翻轉(zhuǎn)

這是一種特別的處理方法。提詞器副屏的顯示是通過把實(shí)際文字左右鏡像,因此可以把每個(gè)文字都鏡像顯示,同時(shí)把每行文字從右向左顯示。

處理方法如下:

1)生成鏡像字體

選擇需要做鏡像的字體,比如說“仿宋”,從“C:WindowsFonts”文件夾中復(fù)制出來,利用Fontogra?pher,F(xiàn)ontCreator或者AsiaFontStudio等軟件,打開字庫,可以進(jìn)行水平鏡像或者垂直鏡像,這里需要水平鏡像,完成變換后生成新的字庫。

2)字體格式轉(zhuǎn)換

由于生成的字體格式是otf格式,而visualstudio中只能使用ttf格式的字體,需要進(jìn)行格式轉(zhuǎn)換??梢允褂肍ontForge這類軟件進(jìn)行格式轉(zhuǎn)換,也有不少網(wǎng)站提供在線轉(zhuǎn)換的服務(wù)。

將轉(zhuǎn)換后的字體文件復(fù)制進(jìn)“C:WindowsFonts”文件夾中即完成鏡像字體的安裝,可以在編程環(huán)境中進(jìn)行使用。部分程序可能在重啟后生效。

3)自動(dòng)折行轉(zhuǎn)成硬回車

完成字體轉(zhuǎn)換后還需要將文本從右向左顯示。文本框載入文本后會(huì)按照寬度自動(dòng)換行,需要取出每一行將其逆序顯示,因此需要將自動(dòng)折行轉(zhuǎn)換成回車換行,以讀取每行文字。參考以下代碼(C#):

5)滾動(dòng)顯示

到目前為止,已經(jīng)完成了文本的鏡像顯示,只需要加入定時(shí)器使文本框滾動(dòng)即可。

3 方式三:文本框翻轉(zhuǎn)

WPF(WindowsPresentationFoundation)是微軟推出的基于WindowsVista的用戶界面框架,是新一代圖形系統(tǒng)[1-3],運(yùn)行在.NETFramework3.0架構(gòu)下,為用戶界面、2D/3D圖形、文檔和媒體提供統(tǒng)一的描述和操作方法。借助WPF,可以輕松完成很多以前很難實(shí)現(xiàn)的視覺效果。

在WPF中可以使用TranslateTransform,RotateT?ransform,ScaleTransform等進(jìn)行幾何變換,但要使用更底層的MatrixTransform(矩陣變換)來進(jìn)行更復(fù)雜的復(fù)合變換。

MatrixTransform矩陣變換,其實(shí)就是其他變形類的底層實(shí)現(xiàn)代碼,其他的類都是基于這個(gè)類的擴(kuò)展,使用戶可以更加簡單方便地應(yīng)用。各類默認(rèn)值參考表1。

表1 各類默認(rèn)值

在該方法中,至少需要2個(gè)RichTextBox,其中1個(gè)正常顯示用于監(jiān)看,1個(gè)鏡像顯示用于提詞器,兩者寬高比應(yīng)相同。由于RichTextBox縮放后,內(nèi)容字體大小不會(huì)一起縮放,因此,需要按比例設(shè)置2個(gè)文本框內(nèi)文字大小,以保證兩者內(nèi)容換行位置相同。

鏡像操作參考以下代碼(xaml):

該段代碼表示將寬1024、高768的RichTextBox向左翻轉(zhuǎn)鏡像,再向右平移1024像素保持在屏幕中間。

4 方式四:VisualBrush類

在WPF中,微軟提供了VisualBrush類。Visual?Brush.Visual屬性獲取或設(shè)置畫筆的內(nèi)容,使用Visual繪制區(qū)域。指定VisualBrush的Visual內(nèi)容有兩種方法:創(chuàng)建一個(gè)新Visual,并使用它來設(shè)置VisualBrush的Visual屬性;或使用現(xiàn)有Visual,它將創(chuàng)建目標(biāo)Visual的重復(fù)圖像,然后可以使用VisualBrush來創(chuàng)建一些有趣的效果,例如反射和放大。

為VisualBrush定義一個(gè)新的Visual,該Visual是一個(gè)UIElement(如面板或控件),此處為監(jiān)看窗口的Rich?TextBox,把VisualBrush填充區(qū)域等比例設(shè)置為提詞器顯示屏全屏大小,Visual將RichTextBox繪制填充至此區(qū)域。

與上述TranslateTransform類似,VisualBrush類提供了一個(gè)繼承自Brush的Transform屬性,獲取或設(shè)置應(yīng)用于畫筆的變換,同樣應(yīng)用矩陣變化,可實(shí)現(xiàn)鏡像翻轉(zhuǎn)。參考代碼如下(xaml):

也可以如方法三所述,采用MatrixTransform矩陣變換進(jìn)行鏡像翻轉(zhuǎn)。參考代碼如下(xaml):

5 滾動(dòng)的實(shí)現(xiàn)

提詞器的使用過程中,僅僅鏡像顯示是不夠的,還需要控制顯示內(nèi)容向上向下滾動(dòng)。這里采用了一種比較簡單的方法。

首先創(chuàng)造一個(gè)定時(shí)器,設(shè)置時(shí)間刻度之間的時(shí)間段大小,即多長時(shí)間發(fā)出一次。然后為該定時(shí)器綁定一個(gè)事件,超過定時(shí)器間隔時(shí)發(fā)生。在該事件中,定義一個(gè)遞增變量,讓RichTextBox滾動(dòng)到該變量位置。參考代碼如下(C#):

通過調(diào)整時(shí)間間隔m_timer.Interval和pos變量每次遞增的大小,控制RichTextBox滾動(dòng)速度,并達(dá)到一個(gè)平滑滾動(dòng)狀態(tài)。

6 總結(jié)

本文介紹了4種提詞器軟件的實(shí)現(xiàn)方法,4種方法各有優(yōu)劣。方法一圖像翻轉(zhuǎn)是傳統(tǒng)的處理方法,優(yōu)點(diǎn)在于實(shí)現(xiàn)方便,滾動(dòng)平滑,但一旦文字長度太長,生成圖片的時(shí)間會(huì)比較長。方法二字體翻轉(zhuǎn)另辟蹊徑,沒有借助語言特性,任何編程語言都能實(shí)現(xiàn)該功能,但實(shí)驗(yàn)發(fā)現(xiàn)字體處理后顯示效果差強(qiáng)人意。方法三文本框翻轉(zhuǎn)利用了微軟強(qiáng)大的WPF,WPF在界面處理上很有幫助,這種方法實(shí)現(xiàn)效率高、效果好,但由于監(jiān)看窗口和提詞器窗口是2個(gè)RichTextBox,大小不同,里面的文字大小需要等比縮放才能保證監(jiān)看與實(shí)際顯示相同,但實(shí)驗(yàn)過程中發(fā)現(xiàn)這點(diǎn)很難控制,文字寬度和字號(hào)不是嚴(yán)格的比例關(guān)系,會(huì)發(fā)生2個(gè)窗口換行不一致的情況。方法四使用VisualBrush,同樣利用WPF,由于提詞器窗口是監(jiān)看窗口的鏡像,所以克服了方法三的缺點(diǎn),實(shí)驗(yàn)中表現(xiàn)較好,載入數(shù)萬甚至數(shù)十萬的大段文字速度也較快,只是文字?jǐn)?shù)量過多時(shí),剛開始滾動(dòng)會(huì)有些不流暢,但考慮到實(shí)際使用時(shí)這種極限情況幾乎不會(huì)發(fā)生,所以可以忽略不計(jì)。

另外,值得一提的是現(xiàn)在越來越多的播音主持發(fā)生在演播室外,所以需要考慮一種便攜提詞器設(shè)備,平板PC就是一個(gè)很好的載體。微軟發(fā)布的WindowsRT平板應(yīng)用程序基于XAML和C#編寫,和WPF程序有很大的相似性,只需要對(duì)部分界面和功能稍作修改,就可以移植到WindowsRT平板PC上,成為便攜式提詞器。

[1]WALTHERS.ASP.NET3.5揭秘[M].北京:人民郵電出版社,2009.

[2]賽爾斯,格里菲思.WPF編程[M].金璐,夏明才,譯.北京:機(jī)械工業(yè)出版社,2009.

[3]ANDRADEC,LIVERMORES,MAYERSM.WPF高級(jí)編程[M].王德才,吳明飛,譯.北京:清華大學(xué)出版社,2008.

TN948

B

??健男

2013-07-25

【本文獻(xiàn)信息】杜歆文.提詞器軟件的四種實(shí)現(xiàn)方式[J].電視技術(shù),2014,38(2).

猜你喜歡
文本框鏡像字體
巧用文本框?qū)崿F(xiàn)PPT多圖片排版
鏡像
字體的產(chǎn)生
PPT文本框的另類應(yīng)用
鏡像
小康(2018年23期)2018-08-23 06:18:52
文本框酷變3D效果
鏡像
小康(2015年4期)2015-03-31 14:57:40
鏡像
小康(2015年6期)2015-03-26 14:44:27
組合字體
文本框在地理課件中的應(yīng)用
明水县| 景德镇市| 遵义县| 维西| 新营市| 宜州市| 江源县| 台湾省| 上蔡县| 望奎县| 澄迈县| 洪洞县| 嵊州市| 仙桃市| 阿勒泰市| 红安县| 墨玉县| 特克斯县| 友谊县| 灵璧县| 留坝县| 同仁县| 富宁县| 自贡市| 张家界市| 太仓市| 富锦市| 景洪市| 永嘉县| 平罗县| 文昌市| 伊金霍洛旗| 古田县| 屏东县| 峡江县| 华亭县| 招远市| 威远县| 监利县| 武鸣县| 永城市|