確定切割后小圖的大小為mxn,然后將大圖分割為N個mxn小圖,并且可以按順序保存下來

uj5u.com熱心網友回復:
創建陣列(上標為方塊個數-1)createcomxxxdc,createcomxxxbitmap,selectobject,srt???blt 回圈復制小圖位置到陣列中的hdc去
uj5u.com熱心網友回復:
使用PicClip控制元件或者
PaintPicture 方法
用以在 Form, PictureBox 或 Printer 上繪制圖形檔案(.bmp、.wmf、.emf、.cur、.ico或 .dib)的內容。不支持命名引數。
語法
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
PaintPicture 方法的語法包含下列部分:
部分 描述
object 可選的。一個物件運算式,其值為“應用于”串列中的一個物件。如果省略 object,帶有焦點的 Form 物件預設為 object。
Picture 必需的。要繪制到 object 上的圖形源。Form 或 PictureBox 必須是 Picture 屬性。
x1, y1 必需的。均為單精度值,指定在 object 上繪制 picture 的目標坐標(x-軸和y-軸)。object 的 ScaleMode 屬性決定使用的度量單位。
Width1 可選的。單精度值,指示 picture 的目標寬度。object 的 ScaleMode 屬性決定使用的度量單位。如果目標寬度比源寬度 (width2) 大或小,將適當地拉伸或壓縮 picture。如果該引數省略,則使用源寬度。
Height1 可選的。 單精度值,指示 picture 的目標高度。object 的 ScaleMode 屬性決定使用的度量單位。如果目標高度比源高度 (height2) 大或小,將適當地拉伸或壓縮 picture。如果該引數省略,則使用源高度。
x2, y2 可選的。均為單精度值,指示 picture 內剪貼區的坐標(x-軸和y-軸)。object 的 ScaleMode 屬性決定使用的度量單位。如果該引數省略,則預設為 0。
Width2 可選的。單精度值,指示 picture 內剪貼區的源寬度。object 的 ScaleMode 屬性決定使用的度量單位。如果該引數省略,則使用整個源寬度。
Height2 可選的。 單精度值,指示 picture 內剪貼區的源高度。object 的 ScaleMode 屬性決定使用的度量單位。如果該引數省略,則使用整個源高度。
Opcode 可選的。是長型值或僅由位圖使用的代碼。它用來定義在將 pictur 繪制到 object 上時對 picture 執行的位操作(例如, vbMergeCopy 或 vbSrcAnd 運算子)。關于位運算子常數的完整串列,請參閱 Visual Basic Help 檔案中的 RasterOp Constants 主題。
在使用opcode時有一些限制。例如,如果資源是圖示或圖元檔案,則只能使用 vbSrcCopy,而不能使用其他的opcode;并且,與圖案 (或 SDK 術語中的"畫筆"),如 MERGECOPY、 PATCOPY、 PATPAINT 和 PATINVERT,相互動的opcode實際上是同目標的 FillStyle 屬性互動。
注意 Opcode 用于將按位操作傳遞到位圖。當傳遞其他圖象型別時將一個值給該引數會造成“無效程序呼叫或引數”錯誤。這是設計的原因。要避免這個錯誤,對于除位圖外的圖象,將 Opcode 引數置為空。
說明
通過使用負的目標高度值 (height1) 和 / 或目標寬度值 (width1) ,可以水平或垂直翻轉位圖。
可以省略任何多個可選的尾部的引數 。如果省略了一個或多個可選尾部引數,則不能在指定的最后一個引數后面使用逗號。如果想指定某個可選引數,則必須先指定語法中出現在該引數前面的全部引數。
注意,在將一個.Bmp加載入 PictureBox 控制元件和使用 Windows API 函式 BitBlt() 添加圖片之間有一點不同。當您對一個圖象使用 BitBlt() 時,PictureBox 控制元件不知道象您使用 LoadPicture方法那樣去調整大小。將 ScaleWidth 和 ScaleHeight 屬性設定為圖象的大小也不起作用。如果您想在使用 BitBlt 之后用 PictureBox 調整新圖片的大小,必須用代碼手工做,轉換單位并處理邊框,下面是如何這樣做的一個簡單示例:
Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _
as Integer, twipHt as Integer)
' 該代碼假設所有的單位都為緹。如果
' 不是,必須在呼叫該例程之前,轉換為緹。
' 這里也假設圖象顯示在0,0處。
Dim BorderHt as Integer, BorderWd as Integer
BorderWd = Pic.Width - Pic.ScaleWidth
BorderHt = Pic.Height - Pic.ScaleHeight
pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
twipHt + BorderHt
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/121720.html
標籤:API
