回覆列表
  • 1 # 使用者3456175603979

    大致的方法和RGB的縮放一致,注意ddraw

    yuv影片顯示時,由於點選滑鼠左鍵對影象進行放大,會造成ddraw的表面的高度和寬度等發生變化,這樣我們縮放時,要及時跟新ddraw表面,在yuv縮放顯示時,由於我有好幾個類之間互動資料,造成2個物件訪問同一個類的成員(座標)的情況,獲取不到座標值。這個問題可以採用設計模式裡面的單態

    設計模式或使用GetParent()獲取父類對話方塊的物件解決。

    縮放公式如下:

    imgRect :

    根據放大的倍數和捲軸的位置,就算出原始影象的哪部分畫素顯示在螢幕上。

    主要是計算出這個關係;

    設捲軸的水平位置為sx,垂直位置為sy;

    螢幕的size為:cx,cy

    放大倍數為m_zoom;

    那麼此時:對應的原始畫素的座標為:

    影象的畫素size=i_width*i_height;

    那麼此時的區域性原始size為(RGB縮放):

    imgRect.left=(i_width-cx/m_zoom)*sx/Max_ScrollValue;

    imgRect.top=(i_height-cy/m_zoom)*sy/Max_ScrollValue;

    imgRect.width=cx/m_zoom;

    imgRect.height=cy/m_zoom;

  • 中秋節和大豐收的關聯?
  • 你知道什麼樹最毒嗎?