国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js生成縮略圖后上傳并利用canvas重繪

2024-05-06 16:06:03
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js生成縮略圖后上傳,利用canvas重繪,需要的朋友可以參考下

一般在處理圖片上傳時,通常的邏輯都是將源圖片上傳到服務器端,再由服務器端的語言進行縮放大小的操作。

此種模式一般可以滿足大部分的需求,但當我們所需要的圖片僅僅是一個符合規定大小的源圖片的縮略圖,再使用此種模式,將是一種浪費服務端資源以及帶寬的方式,故我們考慮在瀏覽器端生成小圖后再進行上傳操作。

//以下為源代碼

復制代碼 代碼如下:


function drawCanvasImage(obj,width, callback){

var $canvas = $('<canvas></canvas>'),
canvas = $canvas[0],
context = canvas.getContext('2d');

var img = new Image();

img.onload = function(){
if(width){
if(width > img.width){
var target_w = img.width;
var target_h = img.height;
}else{
var target_w = width;
var target_h = parseInt(target_w/img.width*img.height);
}
}else{
var target_w = img.width;
var target_h = img.height;
}
$canvas[0].width = target_w;
$canvas[0].height = target_h;

context.drawImage(img,0,0,target_w,target_h);

_canvas = canvas.toDataURL();
/*console.log(_canvas);*/
callback(obj,_canvas);
}
img.src = getFullPath(obj);

}

function getFullPath(obj)
{
if(obj)
{
//ie
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
obj.select();
return document.selection.createRange().text;
}
//firefox
else if(window.navigator.userAgent.indexOf("Firefox")>=1 || $.browser.opera || $.browser.mozilla)
{
if(obj.files && window.URL.createObjectURL)
{
return window.URL.createObjectURL(obj.files[0]);
}
return obj.value;
}else if($.browser.safari){
if(window.webkitURL.createObjectURL && obj.files){
return window.webkitURL.createObjectURL(obj.files[0]);
}
return obj.value;
}
return obj.value;
}
}


函數getFullPath為獲取選中的圖片的地址。

_canvas獲取到的是base64編碼的圖片編碼,將其傳輸到后端寫入文件即可。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 肇州县| 九台市| 六枝特区| 定襄县| 洪洞县| 温宿县| 承德县| 金阳县| 集贤县| 平湖市| 罗甸县| 长沙县| 新野县| 六枝特区| 句容市| 眉山市| 普陀区| 静宁县| 来凤县| 张家港市| 磐石市| 定日县| 广平县| 清水河县| 三穗县| 玛曲县| 湘潭县| 昭平县| 永寿县| 景宁| 上林县| 上栗县| 平遥县| 化德县| 萨嘎县| 通化县| 巧家县| 泉州市| 苍梧县| 武宣县| 凤台县|