上個禮拜五
有需求要做zoom in的功能
就是在撥放影片的時候要能放大
聽到這樣的需求
當然就是剉著等....![](https://pic.pimg.tw/oven425/1378740270-488034082.gif)
首先,要知道播放什麼格式的影片
如果是微軟不支援的格式,那就精彩了
如果不支援那可能就要依賴DShow或是MF了
如果是在MFC開發,其實只要同時render兩個影像
然後改變其中一個影像就可以了
只是說兩個影像的排版
如果沒有採用分割視窗的模式
那就要自己算比例跟位置了
在這種情形下
採用MFC開發或許是一種福氣
從倒到尾只要面對一種語言
以及兩種framework
而且這兩種也是可分開測試的
如果要轉到WPF就比較麻煩一點
不過可以接受跟Winform相接的話
那就只需要網路善心人士包好的DShow或MF的.NET版
即可使用,只是在WPF上面排版就容易得多了
但是如果是微軟支援的格式哩
只要用WPF從頭幹到底就行了
這是一個好消息,WPF提供的Brush實在是太好用了
所以可以在微笑中完成
只是說不管用哪一種方案都會遇到共同的問題
如何選擇放大的區域
我的方法其實有是抄襲別人的
但我也不知道對方是怎麼做的
![](https://pic.pimg.tw/oven425/1378740274-672908622.jpg)
弄一個框框出來拉,另一個畫面就只要把選取的畫面秀出來即可
這個選取的框框如果在MFC底下可能要拜託CTrackRect來幫幫忙
不然就是自己去畫畫了,比較不好做的就是還要變更滑鼠的游標
如果把MF跟WP透過WinformF結合來做
有可能會失敗
會有Z index的問題,其實我並沒有做
只是靠經驗推測
如果是藉由D3DImagae來結合也許就不會有問題了
這也是推測,因為還沒有完成這著版本
除去這些問題在WPF上面
就是用Brush拚到底了
剩下就是計算顯示區域跟位移了
也多虧了去年寫小畫家以及上一間公司的訓練
讓我一下子就搞定了
反而玩最久的是那個選取框框
其實以前小畫家就做到爛掉了,只是最近看了一些流程圖的sample
讓我又多所遲疑地做實驗
讓我原本以為最難的算放大跟位移花不到30分鐘
但是整個UI的Layout跟怎樣做的靈感可以就花了一兩天了
一開始的時候是顯示全部的圖,所以框框也是最大的
![](https://pic.pimg.tw/oven425/1378740281-551001194.jpg)
再來是改變選取框框的位置跟把小
![](https://pic.pimg.tw/oven425/1378740286-2344265001.jpg)
可以看到指秀出選取的範圍,並顯示在全部的畫面
其實這是使用圖片進行測試,因為影片都一直撥放
實在很難測試,這也是WPF來做這個題目最好的地方
只要把Image換成MediaElement就可以直接上陣了
這就是這個六日最大的成果
講實在的也不難啦
跟流程圖的UI比起來,這個只需要一個UserControl來做選取範圍的UI
其他就是靠著Brush拚到底就OK了
圖片來源:kissbaby7606--無名
有需求要做zoom in的功能
就是在撥放影片的時候要能放大
聽到這樣的需求
當然就是剉著等....
![](https://pic.pimg.tw/oven425/1378740270-488034082.gif)
首先,要知道播放什麼格式的影片
如果是微軟不支援的格式,那就精彩了
如果不支援那可能就要依賴DShow或是MF了
如果是在MFC開發,其實只要同時render兩個影像
然後改變其中一個影像就可以了
只是說兩個影像的排版
如果沒有採用分割視窗的模式
那就要自己算比例跟位置了
在這種情形下
採用MFC開發或許是一種福氣
從倒到尾只要面對一種語言
以及兩種framework
而且這兩種也是可分開測試的
如果要轉到WPF就比較麻煩一點
不過可以接受跟Winform相接的話
那就只需要網路善心人士包好的DShow或MF的.NET版
即可使用,只是在WPF上面排版就容易得多了
但是如果是微軟支援的格式哩
只要用WPF從頭幹到底就行了
這是一個好消息,WPF提供的Brush實在是太好用了
所以可以在微笑中完成
只是說不管用哪一種方案都會遇到共同的問題
如何選擇放大的區域
我的方法其實有是抄襲別人的
但我也不知道對方是怎麼做的
![](https://pic.pimg.tw/oven425/1378740274-672908622.jpg)
弄一個框框出來拉,另一個畫面就只要把選取的畫面秀出來即可
這個選取的框框如果在MFC底下可能要拜託CTrackRect來幫幫忙
不然就是自己去畫畫了,比較不好做的就是還要變更滑鼠的游標
如果把MF跟WP透過WinformF結合來做
有可能會失敗
會有Z index的問題,其實我並沒有做
只是靠經驗推測
如果是藉由D3DImagae來結合也許就不會有問題了
這也是推測,因為還沒有完成這著版本
除去這些問題在WPF上面
就是用Brush拚到底了
剩下就是計算顯示區域跟位移了
也多虧了去年寫小畫家以及上一間公司的訓練
讓我一下子就搞定了
反而玩最久的是那個選取框框
其實以前小畫家就做到爛掉了,只是最近看了一些流程圖的sample
讓我又多所遲疑地做實驗
讓我原本以為最難的算放大跟位移花不到30分鐘
但是整個UI的Layout跟怎樣做的靈感可以就花了一兩天了
一開始的時候是顯示全部的圖,所以框框也是最大的
![](https://pic.pimg.tw/oven425/1378740281-551001194.jpg)
再來是改變選取框框的位置跟把小
![](https://pic.pimg.tw/oven425/1378740286-2344265001.jpg)
可以看到指秀出選取的範圍,並顯示在全部的畫面
其實這是使用圖片進行測試,因為影片都一直撥放
實在很難測試,這也是WPF來做這個題目最好的地方
只要把Image換成MediaElement就可以直接上陣了
這就是這個六日最大的成果
講實在的也不難啦
跟流程圖的UI比起來,這個只需要一個UserControl來做選取範圍的UI
其他就是靠著Brush拚到底就OK了
圖片來源:kissbaby7606--無名
全站熱搜