国产探花免费观看_亚洲丰满少妇自慰呻吟_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編碼的圖片編碼,將其傳輸到后端寫入文件即可。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 云和县| 凌源市| 南康市| 东源县| 丰镇市| 青田县| 宁远县| 雷山县| 高雄县| 大丰市| 高台县| 白河县| 长岛县| 临高县| 吉木萨尔县| 高淳县| 嘉义市| 石屏县| 信丰县| 乌鲁木齐市| 龙泉市| 永兴县| 伊宁县| 平潭县| 潼关县| 通化市| 伊川县| 宣汉县| 西乌珠穆沁旗| 昌邑市| 锦州市| 上饶市| 宁蒗| 库车县| 青铜峡市| 莎车县| 柞水县| 抚顺市| 丹阳市| 稻城县| 弥勒县|