最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js+canvas實現(xiàn)圖片格式webp/png/jpeg在線轉換

 更新時間:2020年08月22日 22:45:07   投稿:mdxy-dxy  
這篇文章主要介紹了js+canvas實現(xiàn)圖片格式webp/png/jpeg在線轉換,需要的朋友可以參考下

功能需求:
我們在網(wǎng)頁中上傳一張圖片,選擇不同的格式,將該圖片轉換為對應的格式。

實現(xiàn)思路:
實現(xiàn)這樣的功能,使用后端語言【php,java等】可以很容易的完成。但是如果只在前端如何完成呢?

1、通過input上傳圖片,使用FileReader將文件讀取到內存中。

2、將圖片轉換為canvas,canvas.toDataURL()方法設置為我們需要的格式,如:"image/webp","image/jpeg","image/png"。

3、最后將canvas轉換為圖片,顯示在網(wǎng)頁中。點擊右鍵保存,就得到了不同格式的圖片了。

toDataURL說明:
方法返回一個包含圖片展示的 data URI ??梢允褂?type 參數(shù)其類型,默認為 PNG 格式。圖片的分辨率為96dpi。

語法:

canvas.toDataURL(type, encoderOptions);

type【可選】 圖片格式,默認為 image/png,可選格式:"image/webp","image/jpeg","image/png"。

encoderOptions【可選】在指定圖片格式為 image/jpeg 或 image/webp的情況下,可以從 0 到 1 的區(qū)間內選擇圖片的質量。如果超出取值范圍,將會使用默認值 0.92。其他參數(shù)會被忽略。

注意點:

1、如果畫布的高度或寬度是0,那么會返回字符串“data:,”。

2、其中webkit內核瀏覽器支持“image/webp”類型 。 建議使用Chrome瀏覽器。

代碼例子:

html:

<input type="file" id="inputimg">
<select id="myselect">
	<option value="1">webp格式</option>
  <option value="2">jpeg格式</option>
  <option value="3">png格式</option> 
</select>
<button id="start">開始轉換</button>
<p>預覽:</p>
<img id="imgShow" src="" alt="">

js:

/*事件*/
document.getElementById('start').addEventListener('click', function(){
	getImg(function(image){
		var can=imgToCanvas(image),
		  imgshow=document.getElementById("imgShow");
		imgshow.setAttribute('src',canvasToImg(can));
	});
});
// 把image 轉換為 canvas對象 
function imgToCanvas(image) { 	
  var canvas = document.createElement("canvas"); 
  canvas.width = image.width; 
  canvas.height = image.height;  
  canvas.getContext("2d").drawImage(image, 0, 0);  
  return canvas; 
} 
//canvas轉換為image
function canvasToImg(canvas) {
	var array=["image/webp","image/jpeg","image/png"],
	  type=document.getElementById('myselect').value-1;
  var src = canvas.toDataURL(array[type]);
  return src;
}
//獲取圖片信息
function getImg(fn){
	var imgFile = new FileReader();
	try{
		imgFile.onload = function(e) {
			var image = new Image();
			image.src= e.target.result; //base64數(shù)據(jù) 
			image.onload=function(){
				fn(image);
			}
		}
		imgFile.readAsDataURL(document.getElementById('inputimg').files[0]);
	}catch(e){
		console.log("請上傳圖片!"+e);
	}
}

在線Demo:

地址:http://www.fzitv.net/tools/webp.html

說明:需要在chrome瀏覽器中使用,大家可以自行發(fā)揮可以做個批量轉換。

到此這篇關于js+canvas實現(xiàn)圖片格式webp/png/jpeg在線轉換的文章就介紹到這了,更多相關webp/png/jpeg在線轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JavaScript中ES6字符串擴展方法

    JavaScript中ES6字符串擴展方法

    這篇文章主要介紹了JavaScript中ES6字符串擴展方法的相關資料,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-08-08
  • JS實現(xiàn)table表格內針對某列內容進行即時搜索篩選功能

    JS實現(xiàn)table表格內針對某列內容進行即時搜索篩選功能

    這篇文章主要介紹了JS實現(xiàn)table表格內針對某列內容進行即時搜索篩選功能,涉及javascript針對HTML元素的遍歷、屬性動態(tài)修改相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • 詳細聊一聊js防抖節(jié)流到底是什么

    詳細聊一聊js防抖節(jié)流到底是什么

    在項目開發(fā)中我們常常會去監(jiān)聽滾動事件或者用戶輸入框驗證事件,如果事件處理沒有頻率限制,當用戶不斷觸發(fā)事件時,就會加重瀏覽器的負擔,影響用戶的體驗,造成不必要的損失,這篇文章主要給大家介紹了關于js防抖節(jié)流到底是什么的相關資料,需要的朋友可以參考下
    2022-04-04
  • layui清除radio的選中狀態(tài)實例

    layui清除radio的選中狀態(tài)實例

    今天小編就為大家分享一篇layui清除radio的選中狀態(tài)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • javascript學習小結之prototype

    javascript學習小結之prototype

    本系列博文主要談一些在 javascript 使用中經(jīng)常會混淆的高級應用,包括: prototype, closure, scope, this關鍵字. 對于一個需要提高自己javascript水平的程序員,這些都是必須要掌握的,本節(jié)主要介紹prototype.
    2015-12-12
  • 九個超級好用的Javascript技巧

    九個超級好用的Javascript技巧

    在實際的開發(fā)工作過程中,積累了一些常見又超級好用的 Javascript 技巧和代碼片段,包括整理的其他大神的 JS 使用技巧,今天篩選了 9 個,以供大家參考
    2023-04-04
  • 淺談JavaScript閉包

    淺談JavaScript閉包

    這篇文章主要介紹了JavaScript閉包,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • discuz中用到的javascript函數(shù)解析

    discuz中用到的javascript函數(shù)解析

    discuz中用到的js不論是多瀏覽器兼容性和實用性都是非常不錯的,推薦大家看下
    2008-05-05
  • JavaScript輸出當前時間Unix時間戳的方法

    JavaScript輸出當前時間Unix時間戳的方法

    這篇文章主要介紹了JavaScript輸出當前時間Unix時間戳的方法,涉及javascript中Date及getTime等函數(shù)操作時間的使用技巧,需要的朋友可以參考下
    2015-04-04
  • 詳解javascript實現(xiàn)瀑布流絕對式布局

    詳解javascript實現(xiàn)瀑布流絕對式布局

    這篇文章主要介紹了javascript實現(xiàn)瀑布流的兩種布局方式,一是絕對式布局、二是列式布局,詳細介紹了這兩種布局方式的原理,感興趣的小伙伴們可以參考一下
    2016-01-01

最新評論

察隅县| 崇阳县| 兴仁县| 蒙山县| 龙门县| 临湘市| 临漳县| 绵竹市| 汉川市| 青海省| 永靖县| 星子县| 霸州市| 凤庆县| 吉林省| 聂拉木县| 贵溪市| 淄博市| 南和县| 饶平县| 武夷山市| 定南县| 美姑县| 当阳市| 乡宁县| 黄山市| 威信县| 衡东县| 镇坪县| 白银市| 临海市| 北海市| 宜城市| 庆云县| 安义县| 昌图县| 垣曲县| 曲周县| 青河县| 嘉义市| 衡水市|