国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

利用PictureClip進行圖像局部處理

2019-11-18 17:36:17
字體:
來源:轉載
供稿:網友
在圖像的處理過程中經常需要對圖像進行局部放大或其它處理操作,在VB中提供了一個非常實用的圖像處理控件PictureClip,利用此控件可以方便的完成圖像的局部放大或縮小操作。PictureClip控件的功能就是對一個原始位圖進行剪裁,根據用戶的需要可以有兩種剪裁方法,第一種方法是確定固定的剪裁尺寸,通過確定橫向與縱向的剪裁份數,控件均勻地把原始位圖分成不同的圖像塊,通過序號可以訪問每一個圖像塊,此時需要的屬性有:PicClip1.Picture:指定被剪裁的圖像;PicClip1.Cols:確定剪裁的橫向份數;PicClip1.Rows:確定剪裁的縱向份數;PicClip1.GraphicCell(i):訪問第i個圖像塊;另一種剪裁方法是隨機剪裁,確定剪裁的起點,再確定需要剪裁的橫向與縱向尺寸,此固定區域內的圖像即剪裁為一可訪問的圖像,涉及的屬性有:          PictureClip1.ClipX:指定剪裁的橫向起點坐標;
     PictureClip1.ClipY:指定前裁的縱向起點坐標;                PictureClip1.ClipHeight:指定剪裁的橫向長度;       
     PictureClip1.ClipWidth:指定剪裁的縱向長度;
     PictureClip1.Clip:訪問被剪裁的圖形;
  還有兩個重要的屬性,即StretchX和StretchY,此屬性指定被剪裁目標的圖像的大小,當此值與原始位圖尺寸不相同時,將引起剪裁圖像的放大或縮小,這就是利用此控件進行圖像局部放大或縮小的原理;
  利用上述兩種剪裁方法均可以進行圖像的局部放大或縮小處理,但在實際應用中還是第二種剪裁方法更為實用,在具體的編程時還應注意以下幾點:
  1.在PictureClip的StretchX及其它屬性中均以象素為單位,所以在對圖像進行操作時必須置作圖單位為象素,即使用ScaleMode=3命令;
  2.在進行隨機剪裁時,如果使用固定的剪裁尺寸,當剪裁坐標移到圖像的邊緣時,圖像實際尺寸小于剪裁尺寸,將引起邊界溢出,解決的辦法是始終以鼠標坐標點之后的圖像尺寸為剪裁尺寸,然后再調整StretchX及StretchY值為剪裁尺寸的固定倍數,即可實現局部圖像固定比率的放大或縮小操作;
  3.放大或縮小的局部圖像需要裝入圖像框或其它容器控件中,此窗口的位置必須是靈活變化的,即自動讓開被剪裁的區域,可通過判斷被剪裁區域起點的位置來臨時調整圖像框Letf及Top屬性來完成;

  在下面是一個完整的演示程序,需要在窗體中放置一個PictureClip1及兩個PictureBox控件,Picture1可為任意大小,而Picture2最好接近窗體的1/4,用于顯示局部放大或縮小的圖像,之后把下面的代碼填入相應的事件之中,運行程序之后,將在屏幕上顯示圖像,用鼠標在此圖像上移動,如果按下左鍵移動則實現圖像的局部放大,按下右鍵移動實現圖像的局部縮小,不按下任何鍵則只在小窗口內顯示原尺寸的局部圖像,剪裁的起點是鼠標當前位置。

  以上程序及方法在WINDOWS95系統下、VB5.0環境下調試通過。

  附原程序:(下載)
  注釋:準備窗體和圖像框
  PictureClip1.ClipY=Y
  PictureClip1.ClipHeight=Picture1.ScaleHeight-Y
  PictureClip1.ClipWidth=Picture1.ScaleWidth-X
  PictureClip1.StretchX=(Picture1.ScaleWidth-X)*num
          PictureClip1.StretchY=(Picture1.ScaleHeight-Y)*num
  Picture2.Picture=PictureClip1.Clip注釋:小窗口顯示圖像
EndSub->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉贤区| 乐亭县| 清水河县| 五常市| 华坪县| 洪湖市| 宁强县| 寿光市| 独山县| 镇赉县| 萨迦县| 大渡口区| 宁明县| 五家渠市| 收藏| 静宁县| 澄江县| 九江市| 巍山| 宁南县| 莲花县| 安多县| 那坡县| 湖北省| 楚雄市| 乌鲁木齐县| 湟源县| 化德县| 洛阳市| 耒阳市| 旬阳县| 桐柏县| 黄山市| 嘉定区| 绥棱县| 琼结县| 平乡县| 讷河市| 溧阳市| 运城市| 安乡县|