成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

html5裁剪圖片,canvas裁剪圖片

html5中怎么截取圖片顯示

PS中有一個(gè)蒙版功能,就是只顯示某個(gè)矩形范圍之內(nèi)的圖像,用html實(shí)現(xiàn)蒙版功能就相當(dāng)于是截圖了

成都創(chuàng)新互聯(lián)于2013年成立,先為安多等服務(wù)建站,安多等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為安多企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

HTML5中,如何為圖片制作放大鏡效果?

制作圖片的放大效果我考慮到的方法是將原始圖片繪制到canvas上,然后在對(duì)canvas進(jìn)行局部裁剪最后對(duì)裁剪的部分進(jìn)行放大,這樣就可以實(shí)現(xiàn)放大鏡的效果。

這里我給出一個(gè)實(shí)現(xiàn)這個(gè)想法的示例。該示例實(shí)際上就是運(yùn)用HTML5?canvas中對(duì)畫布進(jìn)行裁剪與保存畫布狀態(tài)的相關(guān)知識(shí)實(shí)現(xiàn)的。

上面是給出示例的效果圖。這是不是你想要的放大鏡效果呢?

下面我們來看下示例代碼:在這個(gè)示例中當(dāng)你點(diǎn)擊圖片時(shí)圖片就會(huì)出現(xiàn)上圖效果,再一次點(diǎn)擊時(shí)就變成原始圖片了。

!DOCTYPE html

html

head

meta charset="utf-8"

title放大鏡/title

!—HTML代碼設(shè)計(jì):一個(gè)簡單的canvas元素--

/head

body

div id="result-stub" class="well hidden"

canvas id="canvas" width="345" height="345"

p你的瀏覽器不支持canvas元素/p

/canvas

/div

script

window.onload=function() {

//獲取canvas對(duì)象以及圖片對(duì)象

var

canvas = document.getElementById('canvas'),

img = new Image(),

context = null,

dataUrl = null,

//設(shè)置一個(gè)標(biāo)記,該標(biāo)記的作用是控制我們點(diǎn)擊canvas時(shí)放大鏡效果的消失和出現(xiàn)

isMagnified = false,

//init函數(shù)只要是在圖片加載時(shí)繪制出圖形

init = function() {

img.onload = function() {

//繪制原始圖片

context.drawImage(img, 0, 0);

//將圖片信息轉(zhuǎn)化為二進(jìn)制信息或者URL信息存儲(chǔ)在dataUrl中方便后面調(diào)用

dataUrl = canvas.toDataURL();

}

img.src = 'fist-pump-baby.jpg';

//設(shè)置標(biāo)記值

isMagnified = false;

},

//magnify函數(shù)的作用是繪制具有放大鏡效果的圖形

magnify = function() {

//保存當(dāng)前畫布的繪制狀態(tài)即畫布繪制原始圖片的狀態(tài)。方便我們在后面恢復(fù)到繪制原始圖片的狀態(tài)

context.save();

//因?yàn)榉糯箸R的圓圈和把手是通過canvas繪制的這里設(shè)置了一些繪制把手和圓圈的樣式屬性。

context.lineWidth = 10;//?線條寬度

context.shadowColor = '#000';//?陰影的顏色黑色

context.shadowBlur = 15;//?模糊級(jí)別為15

context.shadowOffsetX = 5;//?形狀與陰影的水平距離5

context.shadowOffsetY = 5;//?形狀與陰影的垂直距離5

//保存畫布當(dāng)前狀態(tài)即我們設(shè)置陰影屬性后的狀態(tài)方便后面使用

context.save();

//繪制出放大鏡把手的圖形

context.beginPath();

context.moveTo(230, 230);

context.lineCap = 'round';

context.lineWidth = 30;

context.lineTo(285, 285);

context.stroke();

//對(duì)圖片進(jìn)行裁剪,裁剪出的圖形是一個(gè)圓形。

context.beginPath();

context.arc(

150,

150,

115,

0,

Math.PI * 2,

true);

context.clip();

//創(chuàng)建一個(gè)新的Image對(duì)象,這個(gè)Image對(duì)象的圖片資源是前面存儲(chǔ)在dataUrl中的圖片資源。所以這個(gè)Image對(duì)象和之前初始化的Image對(duì)象是完全一樣的。

var magnified = new Image();

magnified.src = dataUrl;

//對(duì)Image對(duì)象進(jìn)行放大1.5倍,并進(jìn)行繪制。注意此時(shí)的畫布狀態(tài)時(shí)裁剪為一個(gè)圓形的狀態(tài),所以這里繪制的也僅僅是圖片中的一個(gè)圓形區(qū)域。這里為了繪制出圖片中娃娃的臉設(shè)置了繪制的圖片有一定的偏移量。

context.scale(1.5, 1.5);

context.drawImage(img, -40, -40);

//調(diào)用restore()函數(shù)將畫布狀態(tài)恢復(fù)到繪制把放大鏡把手時(shí)的狀態(tài),即具有陰影屬性

context.restore();

//繪制放大鏡的圓圈,即繪制剛剛我們裁剪出來圖片的邊框。這樣剛剛裁剪出來的圓形圖形就會(huì)正好處于放大鏡的圓圈中。

context.arc(

150,

150,

115,

0,

Math.PI * 2,

true);

context.stroke();

//重置畫布,將畫布恢復(fù)到繪制元素圖片的狀態(tài),以方便繪制出放大效果后,再次點(diǎn)擊是繪制原始圖片。

context.restore();

//設(shè)置標(biāo)記值,實(shí)現(xiàn)點(diǎn)擊后放大效果消失。

isMagnified = true;

};

//加載初始化代碼,即當(dāng)運(yùn)行頁面時(shí)會(huì)在頁面繪制出一個(gè)原始圖像

init();

//監(jiān)聽畫布的點(diǎn)擊事件,當(dāng)點(diǎn)擊頁面的圖像時(shí)會(huì)根據(jù)標(biāo)記的值來進(jìn)行判斷是否對(duì)畫布進(jìn)行方大處理

$('canvas').click(function() {

if (isMagnified) {

init();//繪制原始圖像

}

else {

magnify();//繪制放大的圖像

}

});

}

/script

script src="jquery.js"/script

/body

/html

對(duì)于這些知識(shí)在一個(gè)叫秒秒學(xué)的教程網(wǎng)站上有相關(guān)的學(xué)習(xí)資料,有興趣的可以自己去看看,希望對(duì)你有幫助。

HTML5圖片縮放后如何正確截圖

通過原圖和縮放圖的大小比例來計(jì)算,在縮放圖上的截取原圖應(yīng)該取多大,以及位置。

分享題目:html5裁剪圖片,canvas裁剪圖片
URL地址:http://jinyejixie.com/article18/dsdgggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、標(biāo)簽優(yōu)化、營銷型網(wǎng)站建設(shè)、小程序開發(fā)、品牌網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
华容县| 巴彦县| 阿瓦提县| 三都| 博罗县| 蕲春县| 无锡市| 固阳县| 贡觉县| 抚顺市| 沙雅县| 莱州市| 和平区| 托克逊县| 墨脱县| 枞阳县| 昆明市| 怀远县| 临澧县| 巩留县| 农安县| 桐柏县| 六盘水市| 和林格尔县| 大名县| 普陀区| 武冈市| 兴义市| 南溪县| 巴南区| 湖南省| 武穴市| 石狮市| 拜泉县| 温泉县| 台北市| 陕西省| 临朐县| 阿巴嘎旗| 北辰区| 陆河县|