canvas使用

代碼實(shí)現(xiàn)

<body>
    <canvas id="can" width="300px" height="300px" style="background: seashell;"></canvas>
    <br />
    ![](../guokeer/img/nav.jpg)
    <button onclick="draw('repeat')">重復(fù)</button> 
    <button onclick="draw('repeat-x')">重復(fù)-x</button> 
    <button onclick="draw('repeat-y')">重復(fù)-y</button> 
    <button onclick="draw('no-repeat')">不重復(fù)</button>     
    <canvas id="img" width="300" height="150" style="border:1px solid #d3d3d3;"></canvas>
    <br />
    <canvas id="myCanvas" width="300px" height="150px"></canvas><br />
    <canvas id="myc" width="300px" height="150px"></canvas>
</body>

<script type="text/javascript">
    
    var c = document.getElementById("can");
    var ctx = c.getContext("2d");
    
    //線性漸變
    var xian = ctx.createLinearGradient(0,0,100,0)
    xian.addColorStop(0,"#333");
    xian.addColorStop(0.5,"red");
    xian.addColorStop(1,"seashell")
    ctx.fillStyle = xian;//addColor添加顏色
    ctx.fillRect(20,20,150,100)
    
    //圖片渲染進(jìn)canvas
    var img=document.getElementById("lamp")
    var myc=document.getElementById("myc");
    var ctx3=myc.getContext("2d");
    ctx3.beginPath();
    ctx3.moveTo(20,20);
    //二次貝賽爾曲線
    ctx3.quadraticCurveTo(20,100,200,20);
    ctx3.lineTo(20,100);
    ctx3.lineTo(30,100);
    ctx3.strokeStyle = "yellow"
    console.log(ctx3);
    ctx3.drawImage(img,0,0);
    ctx3.stroke();
    function draw(direction)
    {
        var d=document.getElementById("img");
        var ctx1=d.getContext("2d");
        ctx1.clearRect(0,0,d.width,d.height); 
        var pat=ctx.createPattern(img,direction);
        ctx1.rect(0,0,220,128);
        ctx1.fillStyle=pat;
        ctx1.fill();
    }
    
    
    var e = document.getElementById("myCanvas");
    var ctx2=e.getContext("2d");
    //鏡像漸變
    var grd=ctx2.createRadialGradient(75,50,5,90,60,100);
    grd.addColorStop(0,"red");
    grd.addColorStop(1,"white");
    ctx2.fillStyle=grd;
    ctx2.fillRect(10,10,150,100);
    
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.fillStyle="red";
    ctx.fillRect(20,20,75,50);
    // Turn transparency on 打開透明模式 
    ctx.globalAlpha=0.2;
    ctx.fillStyle="blue"; 
    ctx.fillRect(50,50,75,50); 
    ctx.fillStyle="green"; 
    ctx.fillRect(80,80,75,50);
</script>

canvas globalCompositeOperation 屬性 圖形屬性

屬性

顏色满钟、樣式和陰影
fillStyle   設(shè)置或返回用于填充繪畫的顏色、漸變或模式株依。
strokeStyle 設(shè)置或返回用于筆觸的顏色疆拘、漸變或模式宪郊。
shadowColor 設(shè)置或返回用于陰影的顏色软吐。
shadowBlur  設(shè)置或返回用于陰影的模糊級(jí)別膘盖。
shadowOffsetX   設(shè)置或返回陰影與形狀的水平距離鞋拟。
shadowOffsetY   設(shè)置或返回陰影與形狀的垂直距離。

createLinearGradient()  創(chuàng)建線性漸變(用在畫布內(nèi)容上)蚌父。
createPattern() 在指定的方向上重復(fù)指定的元素蚕礼。
createRadialGradient()  創(chuàng)建放射狀/環(huán)形的漸變(用在畫布內(nèi)容上)。
addColorStop()  規(guī)定漸變對(duì)象中的顏色和停止位置梢什。

線條樣式
lineCap 設(shè)置或返回線條的結(jié)束端點(diǎn)樣式。
lineJoin    設(shè)置或返回兩條線相交時(shí)朝聋,所創(chuàng)建的拐角類型嗡午。
lineWidth   設(shè)置或返回當(dāng)前的線條寬度。
miterLimit  設(shè)置或返回最大斜接長(zhǎng)度冀痕。

矩形
rect()  創(chuàng)建矩形荔睹。
fillRect()  繪制"被填充"的矩形。
strokeRect()    繪制矩形(無(wú)填充)言蛇。
clearRect() 在給定的矩形內(nèi)清除指定的像素僻他。

路徑
fill()  填充當(dāng)前繪圖(路徑)。
stroke()    繪制已定義的路徑腊尚。
beginPath() 起始一條路徑吨拗,或重置當(dāng)前路徑。
moveTo()    把路徑移動(dòng)到畫布中的指定點(diǎn)婿斥,不創(chuàng)建線條劝篷。
closePath() 創(chuàng)建從當(dāng)前點(diǎn)回到起始點(diǎn)的路徑。
lineTo()    添加一個(gè)新點(diǎn)民宿,然后在畫布中創(chuàng)建從該點(diǎn)到最后指定點(diǎn)的線條娇妓。
clip()  從原始畫布剪切任意形狀和尺寸的區(qū)域。
quadraticCurveTo()  創(chuàng)建二次貝塞爾曲線活鹰。
bezierCurveTo() 創(chuàng)建三次貝塞爾曲線哈恰。
arc()   創(chuàng)建弧/曲線(用于創(chuàng)建圓形或部分圓)。
arcTo() 創(chuàng)建兩切線之間的弧/曲線志群。
isPointInPath() 如果指定的點(diǎn)位于當(dāng)前路徑中着绷,則返回 true,否則返回 false赖舟。

轉(zhuǎn)換
scale() 縮放當(dāng)前繪圖至更大或更小蓬戚。
rotate()    旋轉(zhuǎn)當(dāng)前繪圖。
translate() 重新映射畫布上的 (0,0) 位置宾抓。
transform() 替換繪圖的當(dāng)前轉(zhuǎn)換矩陣子漩。
setTransform()  將當(dāng)前轉(zhuǎn)換重置為單位矩陣豫喧。然后運(yùn)行 transform()。

文本
font    設(shè)置或返回文本內(nèi)容的當(dāng)前字體屬性幢泼。
textAlign   設(shè)置或返回文本內(nèi)容的當(dāng)前對(duì)齊方式紧显。
textBaseline    設(shè)置或返回在繪制文本時(shí)使用的當(dāng)前文本基線。

fillText()  在畫布上繪制"被填充的"文本缕棵。
strokeText()    在畫布上繪制文本(無(wú)填充)孵班。
measureText()   返回包含指定文本寬度的對(duì)象。

圖像繪制
drawImage() 向畫布上繪制圖像招驴、畫布或視頻篙程。

像素操作
width   返回 ImageData 對(duì)象的寬度。
height  返回 ImageData 對(duì)象的高度别厘。
data    返回一個(gè)對(duì)象虱饿,其包含指定的 ImageData 對(duì)象的圖像數(shù)據(jù)。

createImageData()   創(chuàng)建新的触趴、空白的 ImageData 對(duì)象氮发。
getImageData()  返回 ImageData 對(duì)象,該對(duì)象為畫布上指定的矩形復(fù)制像素?cái)?shù)據(jù)冗懦。
putImageData()  把圖像數(shù)據(jù)(從指定的 ImageData 對(duì)象)放回畫布上爽冕。
合成
globalAlpha 設(shè)置或返回繪圖的當(dāng)前 alpha 或透明值。
globalCompositeOperation    設(shè)置或返回新圖像如何繪制到已有的圖像上披蕉。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末颈畸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子没讲,更是在濱河造成了極大的恐慌承冰,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件食零,死亡現(xiàn)場(chǎng)離奇詭異困乒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贰谣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門娜搂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吱抚,你說(shuō)我怎么就攤上這事百宇。” “怎么了秘豹?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵携御,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)啄刹,這世上最難降的妖魔是什么涮坐? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮誓军,結(jié)果婚禮上袱讹,老公的妹妹穿的比我還像新娘。我一直安慰自己昵时,他們只是感情好捷雕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著壹甥,像睡著了一般救巷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上句柠,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天征绸,我揣著相機(jī)與錄音,去河邊找鬼俄占。 笑死,一個(gè)胖子當(dāng)著我的面吹牛淆衷,可吹牛的內(nèi)容都是我干的缸榄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼祝拯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甚带!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起佳头,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鹰贵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后康嘉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碉输,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年亭珍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敷钾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肄梨,死狀恐怖阻荒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情众羡,我是刑警寧澤侨赡,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響羊壹,放射性物質(zhì)發(fā)生泄漏蓖宦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一舶掖、第九天 我趴在偏房一處隱蔽的房頂上張望球昨。 院中可真熱鬧,春花似錦眨攘、人聲如沸主慰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)共螺。三九已至,卻和暖如春情竹,著一層夾襖步出監(jiān)牢的瞬間藐不,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工秦效, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雏蛮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓阱州,卻偏偏與公主長(zhǎng)得像挑秉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苔货,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容