當前位置:首頁 » 文件管理 » html5裁剪上傳圖片

html5裁剪上傳圖片

發布時間: 2022-12-07 14:54:30

㈠ HTML5 做的移動 web app 怎樣實現從本地上傳圖片

當然可以,不過只能從相冊里傳

㈡ 做一個簡易圖片編輯器,要求能從本地打開圖片,有裁剪功能,用HTML5,jquery和css3,

這里有一個用jquery做的 圖片剪切上傳的插件 你看下 滿足你的需要不

http://www.cnblogs.com/fromearth/archive/2009/05/27/1490833.html

㈢ 如何使用HTML5實現拍照上傳應

在HTML5規范的支持下,WebApp在手機上拍照已經成為可能。在下面,我將講解Web App如何用手機進行拍照,顯示在頁面上並上傳到伺服器。


1、 視頻流


HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5的Video標簽,並將從攝像頭獲得視頻作為這個標簽的輸入來源(請注意目前僅Chrome和Opera支持getUserMedia。補充:請使用Opera支持HTML5的新版本,如果是Chrome,版本需為Chrome 18.0.1008+,並使用about:flags來開啟WebRTC,請看下圖)。


[html] view plain

<video id="video" autoplay=""></video>

<script>

var video_element = document.getElementById('video');

if (navigator.getUserMedia) { // opera should use opera.getUserMedia now, chrome use webkitGetUserMedia

navigator.getUserMedia('video',success, error);

}

function success(stream) {

video_element.src =stream;

}

</script>

2、 拍照

拍照功能,我們採用HTML5的Canvas實時捕獲Video標簽的內容,Video元素能作為Canvas圖像的輸入,這一點很棒。主要代碼如下:


[html] view plain

<script>

var canvas =document.createElement('canvas');

var ctx = canvas.getContext('2d');

var cw = vw;

var ch = vh;

ctx.fillStyle = "#ffffff";

ctx.fillRect(0, 0, cw, ch);

ctx.drawImage(video_element, 0, 0, vvw,vvh, 0,0, vw,vh);

document.body.append(canvas);

</script>


3、 圖片獲取

下面我們要從Canvas獲取圖片數據,其核心思路是用canvas的toDataURL將Canvas的數據轉換為base64位編碼的PNG圖像,類似於「data:image/png;base64,xxxxx」的格式。


[html] view plain

var imgData =canvas.toDataURL("image/png");

因為真正圖像數據是base64編碼逗號之後的部分,所以我們實際伺服器處理的圖像數據應該是這部分,我們可以用兩種辦法來獲取。


第一種:是在前端截取22位以後的字元串作為圖像數據,例如:


[html] view plain

var data = imgData.substr(22);

如果要在上傳前獲取圖片的大小,可以使用:


[html] view plain

var length = atob(data).length;// atob decodes a string of data which has been encoded using base-64 encoding

第二種:是在後端獲取傳輸的數據後用後台語言截取22位以後的字元串。例如php里:


[html] view plain

$image = base64_decode( str_replace('data:image/jpeg;base64,', '',$data);

4、 圖片上傳


在前端可以使用Ajax將上面獲得的圖片數據上傳到後台腳本。例如使用jQuery時:


[html] view plain

$.post('upload.php',{ 'data' : data } );

在後台我們用PHP腳本接收數據並存儲為圖片。


[html] view plain

function convert_data($data){

$image = base64_decode( str_replace('data:image/jpeg;base64,', '',$data);

save_to_file($image);

}

function save_to_file($image){

$fp = fopen($filename, 'w');

fwrite($fp, $image);

fclose($fp);

}

請注意,以上的解決方案不僅能用於Web App拍照上傳,並且你可以實現把Canvas的輸出轉換為圖片上傳的功能。這樣你可以使用Canvas為用戶提供圖片編輯,例如裁剪、上色、塗鴉的畫板功能,然後把用戶編輯完的圖片保存到伺服器上。

㈣ html5+js怎麼實現手機頭像上傳,可裁剪

抱歉
這個已經不屬於HTML+JS的內容了。
最常用的是.NET和PHP,這兩個都有現成的模版可以下載。

㈤ html5拖拽圖片上傳,怎麼獲得圖片原始尺寸

用後台語言去獲取不就可以了。為什麼一定要在前端來獲取圖片原始大小呢?即使你要在前端實用,比如PHP獲取到了以後還是可以通過變數傳遞給前端的。至於PHP怎麼獲取圖片原始大小這個網上很容易找到資料!

㈥ html5或者JS怎樣調用手機攝像頭或者相冊

你給的網頁用的是 <input accept="image/*" type="file">,在IOS端點擊時會提示選擇圖片或相機,安卓端要看瀏覽器對這兩個屬性的優化,部分瀏覽器會直接跳轉到資源管理器,優化做得好的可以直接提示選擇相冊或相機。

㈦ canvas圖片剪切問題,求html5大神指點

看你描述應該是圖片縮放導致的問題, 假設你圖片是 300*300的 畫布是150*150 你將圖片放到畫布上已經縮小一倍了 你移動 sx sy的時候 實際計算得將倍數算進去 比如你距離畫布左邊是10像素 實際上你獲取圖片的時候應該是 10*2=20 這樣猜才對

㈧ Html5移動端上傳圖片並裁剪 - Clipic.js

Clipic.js插件可以為移動端 (僅支持移動端) 提供頭像上傳並裁剪成指定尺寸,用原生js開發的,輕量級,包含html跟css,不到8kb。點此鏈接體驗: https://teojs.github.io/clipic/

https://github.com/teojs/clipic

參數說明

width:Number (默認:500) – 裁剪寬度
height:Number (默認:500) – 裁剪高度
ratio:Number (可選) – 裁剪的比例,當傳入ratio時width/height將無效
src:String (必傳) – 需要裁剪的圖片,可以是圖片鏈接,或者 base64
type:String (默認:jpeg) – 裁剪後圖片的類型,僅支持 jpeg/png 兩種
quality:Number (默認:0.9) – 壓縮質量
buttonText:Array (默認:[『取消』, 『重置』, 『完成』]) – 底部三個按鈕文本

http://bbs.itying.com/topic/5cb17892c6a71b10bcef96b0

㈨ 如何使用html5實現拍照上傳應用

單純HTML5沒法做 需要後台技術 你可以看下關於.NET JSP PHP 最新的NODEJS
必定有很成熟的調用攝像頭拍照的介面或庫。
你可能需要系統學習的有
HTML5
CSS3
JAVASCRIPT JQUERY等
選擇一項你喜歡的後台語言。

㈩ 如何html5分割上傳實現超大文件無插件網頁上傳

//代碼不支持IE 因為IE對HTML5支持不好$("#file").change(function(event) { var file = $("#file")[0].files[0]; PostFile(file,0); });function PostFile(file,i){ var name = file.name, //文件名 size = file.size, //總大小shardSize = 2 * 1024 * 1024, shardSize = 2 * 1024 * 1024,//以2MB為一個分片 shardCount = Math.ceil(size / shardSize); //總片數 if(i >= shardCount){ return; } //計算每一片的起始與結束位置 var start = i * shardSize, end = Math.min(size, start + shardSize); //構造一個表單,FormData是HTML5新增的 var form = new FormData(); form.append("data", file.slice(start,end)); //slice方法用於切出文件的一部分 form.append("lastModified", file.lastModified); //slice方法用於切出文件的一部分 form.append("name", name); form.append("total", shardCount); //總片數 form.append("index", i + 1); //當前是第幾片 //Ajax提交 $.ajax({ url: "/test/AjaxFile", type: "POST", data: form, async: true, //非同步 processData: false, //很重要,告訴jquery不要對form進行處理 contentType: false, //很重要,指定為false才能形成正確的Content-Type success: function(data){ if(data){ i = data++; var num = Math.ceil(i*100 / shardCount); $("#output").text(num+'%'); PostFile(file,i); } } }); }

熱點內容
怎麼下載php 發布:2025-09-18 12:41:53 瀏覽:213
php登錄原理 發布:2025-09-18 12:37:00 瀏覽:598
php全等 發布:2025-09-18 12:36:55 瀏覽:636
c語言怎麼表示奇數 發布:2025-09-18 12:26:21 瀏覽:409
瑞薩編譯器原理 發布:2025-09-18 12:12:01 瀏覽:11
阿里雲北京伺服器存放地點 發布:2025-09-18 12:11:49 瀏覽:219
打開支付界面密碼如何設置 發布:2025-09-18 12:01:35 瀏覽:529
絕地求生和賽博朋克2077哪個吃配置 發布:2025-09-18 11:35:20 瀏覽:168
亞索腳本秒風 發布:2025-09-18 11:35:07 瀏覽:436
sql表的復制 發布:2025-09-18 11:02:25 瀏覽:73