現(xiàn)在有如下需求:
有一張圖片,我想截取當(dāng)前圖片的某一部分,然后獲取新截取的圖片的文件名,并添加到某個(gè)p中,請(qǐng)問該如何實(shí)現(xiàn)。。。我查了一下,大概都是用canvas或者一些jquery插件,那些插件都是從本地選擇一張圖片再截取,有沒有什么方法可以直接從頁面截取呢。。
學(xué)習(xí)是最好的投資!
canvas 可以根據(jù)圖片路徑來進(jìn)行操作。 這里我簡(jiǎn)單列舉兩種方法,還有其他方法,大致思路就是圖片路徑轉(zhuǎn)成base64 或blob, 加載到canvas對(duì)象中去操作,裁剪壓縮都可以。 當(dāng)然也可以用牛人封裝好的第三方類庫去操作。
可以參考使用這個(gè)第三方工具 javascript-load-image
實(shí)際使用過,還是比較好用
//圖片壓縮并且展示
function imageresizeAndPreview(path, orientation) {
loadImage(
path,
function(img) {
//img為得到的html Image對(duì)象
if (img.type === "error") {
console.log("Error loading image " + imageUrl);
} else {
//對(duì)img進(jìn)行一些操作
var li = document.createElement("li");
li.appendChild(img);
}
}, {
maxWidth: 60,
maxHeight: 60,
crop: true,
orientation: orientation
}
);
}
把圖片轉(zhuǎn)成base64再加載,然后再進(jìn)行操作
var canvas = document.getElementById("c");
var ctx = canvas.getContext("2d");
var image = new Image();
image.onload = function() {
ctx.drawImage(image, 0, 0);
};
image.src = "data:image/ png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oMCRUiMrIBQVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12NgoC4AAABQAAEiE+h1AAAAAElFTkSuQmCC";
這個(gè)過程是需要多個(gè)技術(shù)共同完成的
1.js截取圖片插架加 ajax上傳服務(wù)器 并返回圖片地址(服務(wù)端需要?jiǎng)討B(tài)語言接受并存儲(chǔ))
2.將回調(diào)的圖片地址顯示在頁面中
其實(shí)本地選擇一張圖片截取和頁面選擇一張圖片截取差不多,都要把圖片對(duì)象獲取到,然后,如果是真正的截取的話,就必須用到canvas,如果只是看上去像是截取了,可以用<img>加<p>或者用背景圖片展示出來。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)