WP8下實現刮刮樂 橡皮擦 功能

2022-01-28 16:30:58 字數 914 閱讀 6302

說到刮刮樂這個功能,我們最先想到的是上下兩張(長方形)重疊,之後對上面這張進行操作。

我的想法是:通過手勢,讓手指劃過的地方變成透明的,底部就會顯示了。

那如何讓變為透明呢?這就要對的畫素進行處理了。

對於每乙個元素,官方文件說都是argb32[預乘rgb24]  (a指的是alpha通道  控制透明度的)

256級(0-255)的rgb色彩總共能組合出約1678萬種色彩,即256×256×256=16777216

即每乙個元素都為:(-1:白色)----- (-16777216:黑色)   0或其他正值時為透明色

通過

originalwb = new writeablebitmap(bitmapimage);
我們獲取到是一維陣列,為了便於操作,我們將其轉換為二維陣列。

for (int i = 0; i < ioriginalheight; i++)  //高

}

之後我們在手勢觸控後,我們就要處理畫素了

如圖所示:假設我們length=1(指的觸控後的大小吧)

如果我們選中的是紅色那個位置,我就要將包括紅色畫素邊上的距離為1的畫素組成的正方形(綠色位置)變為透明

我們可以獲取到綠色範圍的開始結束行和列。

之後只要改變那個畫素的顏色就行了。

originalwb.pixels[(i * ioriginalwidth) + j] = 0;//

獲取到的周邊某個畫素的下標為(i * l) + j

最後賦值給

ps:但是效果不是非常的好,由於使用的是正方形(可惜writeablebitmap沒有wpf下的一些方法)

如果有更好的方法,希望能告訴我! 

刮刮樂canvas實現

class scratch config this.movenum 0 this.clearrange clearrange 2 this.canvasid canvasid this.radius radius 25 this.canvas this.canvasid this.ifend fal...

canvas 實現刮刮樂

在解決問題前,我們先來了解一下 canvas 標籤 canvas 是 html5 出現的新標籤,像所有的 dom 物件一樣它有自己本身的屬性 方法和事件,其中就有繪圖的方法,js 能夠呼叫它來進行繪圖。context是乙個封裝了很多繪圖功能的物件,獲取這個物件的方法是 var canvas docu...

刮刮樂實現android中刮牆效果

最近公司有個新需求,讓實現刮牆效果,說白了,就是刮刮樂,只是我們專案裡面涉及的比較深,不是簡單的新增乙個圖層,它包括底圖,中間層,以及上面的刮牆圖層,在網上找了好久,都木有合適的demo,後來拿來乙個刮刮樂的例子,自己修改了一下。感謝不相識的朋友,放心哈,demo小女子已經修改過了 public c...