我正在使用Graphics32進行圖像處理。看看它的功能,這讓我覺得我還沒有看到剪貼蒙版的正確實現。我確實看到「裁剪」這個詞在這裏和那裏出現,但它似乎指的是別的東西。使用Graphics32創建剪貼蒙版
簡而言之,我需要一個圖層作爲另一個「窺視孔」的功能;層A應投影到層B上,但只能在層B可見的位置。 (我再也不需要重新定義一個剪貼蒙版了。)
如果它只是我想呈現的那個其他圖層的位圖,那麼它不會那麼難 - 然後我可以使用this trick - 但是事情的複雜性在於,圖層的位圖並沒有講述圖層顯示的內容。該層可以是:
- (部分地)不可見的(當從圖的)
- 移動/拉直+任選重採樣
- 旋轉
在其位圖沒有影響。
實際上是否這樣沒有現成的實現呢?任何建議自己做這個?
進展我發現Graphics32的源一些有用的元素。例如,使用此聲明:
type
TLayerAccess = class(TBitmapLayer);
才能訪問受保護的方法,我可以叫TLayerAccess(ABitmapLayer).Paint(ABitmap32)
有這只是塗上一層爲位圖,正是因爲它會在屏幕上。
graphics32僅使用32nit位圖,它是用於混合的位圖的Alpha通道。我不知道你可以使用的另一個字段(例如裁剪區域等)。你只有另一個「主阿爾法」。我會。 1.確定阿爾法位圖(全白,阿爾法通道是位圖座標中的剪切路徑),將原始位圖相乘到該位圖中,然後將位圖渲染到目的地。 –
如何定義圖層B的哪些部分可見? – iamjoosy
@iamjoosy我可以在容器中繪製時看到它(TImage32)。 –