不規則形狀的剪下

2021-06-07 22:33:27 字數 1896 閱讀 8427

**

原理:根據選擇的區域(區域的選擇需要用到graphicspath),根據區域可以得到這部分區域的邊境矩形,從而不需要迴圈整張,只需要迴圈邊境矩形,將矩形中的選擇區域複製到另一種,這樣大大提高了效率。根據選擇的區域,可以得到複製出位於graphicspath中的這部分,同時設定這部分為透明,同時還要設定另一種不在graphicspath內的區域為透明,這樣看起來的效果就是從中扣出來的一樣,意思和photoshop的套索工具差不多。

說得有點暈了,還是看效果圖吧:(左邊是剪裁出來的圖)

下面說說關鍵的**。

[csharp]view plain

copy

print?

/// 

/// 剪裁(畫素級的處理,效率比較低)

/// 

/// 原圖

/// 選擇的路徑

/// 輸出的(即剪裁出來的)

/// 

public

static bitmap bitmapcrop(bitmap bitmap, graphicspath path, out bitmap outputbitmap)  

else

}  }  bitmap.dispose();  

return image;  

}  

/// /// 剪裁(畫素級的處理,效率比較低)

///

/// 原圖

/// 選擇的路徑

/// 輸出的(即剪裁出來的)

///

public static bitmap bitmapcrop(bitmap bitmap, graphicspath path, out bitmap outputbitmap)

else}}

bitmap.dispose();

return image;

}

[csharp]view plain

copy

print?

/// 

/// 剪裁選定區域的

/// 

/// 原圖

/// 使用者選定的區域

/// 剪裁出來的圖(輸出圖)

/// 

public

static bitmap bitmapcrop(bitmap bitmap, graphicspath path, out bitmap outputbitmap)  

else

//不在路徑中,則設定輸出圖這部分為透明

q += 4;  

}  q += offset;  

}  }  

bmp.unlockbits(data);  

outputbitmap.unlockbits(outdata);  

return bmp;  

}  

/// /// 剪裁選定區域的

///

/// 原圖

/// 使用者選定的區域

/// 剪裁出來的圖(輸出圖)

///

public static bitmap bitmapcrop(bitmap bitmap, graphicspath path, out bitmap outputbitmap)

else //不在路徑中,則設定輸出圖這部分為透明

q += 4;

}q += offset;}}

bmp.unlockbits(data);

outputbitmap.unlockbits(outdata);

return bmp;

}

注意:因為有不安全**,所以要設定專案的屬性 ->生成,勾選允許不安全**。

Unity 製作不規則形狀button

在遊戲開發中,我們有時需要製作不規則形狀的按鍵。unity3d中使用ugui的button控制項只能實現規則的長方形按鈕。而通過給button的image元件新增對應的貼圖 sprite 我們可以實現外觀上的各異形狀,但是button所在的矩形塊中的部分空白區域仍能相應點選,如下圖所示 在本專案中,...

Qt學習 不規則窗體形狀

窗體可以設定為的形狀 如下 其實就是將窗體設定乙個遮罩,此遮罩設為的遮罩即可 這裡還涉及到一些event的函式過載,具體看 標頭檔案 cpp view plain copy print?include include include class widget public qwidget inclu...

不規則物體形狀匹配綜述

不規則物體形狀匹配綜述 物體識別是計算機視覺應用的一項基本任務。識別通常基於目標物體的灰度資訊 顏色資訊或形狀資訊。物體識別的目的就是要找到乙個包含可以區分不同目標物體的有效資訊的描述。由於要識別的物體是事先知道的,所以目標物體的幾何特徵可以被直接應用到識別任務中。不規則物體的形狀匹配是一種有效的利...