html5 jpg转webp格式转换,借助html5,本地转换图片格式/缩放图片/图片滤镜

button{

cursor:pointer;

width:24%;

border:1px;

padding:0px;

}

.c{

max-width:800px;

}

第一步:拖动图片到此处
请允许弹出窗口,
否则除第一张之外的图片无法输出结果
第二步:写上你的图片canvas算法,
仅当你需要对图片进行额外加工(如反色,加水印)操作时使用


警告!!如果你的图片过大,将可直接导致页面崩溃,请不要选择PNG格式输出。
尽量每次转码后,点击重置按钮或者刷新一下页面再转码下一批。

canvas标签的DOM对象"canvas",canvas的二维绘图对象"can",图像的宽高为w和h,缩放后的大小为img_height*img_width
需要绘制的图像为imge,可以使用can.drawImage(img,0,0,img_width,img_height)向canvas中重新绘制目标图片。
否则你的绘制会显示在图像上方
例如

ctx=can;

ctx.beginPath();

ctx.moveTo(20,20);

ctx.bezierCurveTo(20,100,200,100,200,20);

ctx.stroke();

ctx.fillStyle="#0000ff";

ctx.font="40px Arial";

ctx.fillText("Hello World",img_height-300,50);

H:

W:

高度和宽度可使用js表达式,用h和w表示原始高宽

jpeg

webp

png

重置

生成后右击另存为。注意请允许弹出窗口。否则无法同时转码多张图片。

var canvas,can;

var s_height,s_width;

var w,h;

var img_height,img_width;

window.img=new Array();

num=document.getElementById('num');

dui=0;

s=new Array();

function imagesSelected(myFiles){

for(var i=0,f;f=myFiles[i];i++){

var imageReader=new FileReader();

imageReader.οnlοad=(function(aFile){

return function(e){

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

span.innerHTML=['',e.target.result,''].join('');

document.getElementById("thumbs").insertBefore(span,null);

dui++;

num.innerHTML="共"+dui+"个文件";

};

})(f);

imageReader.onloadend=function(e){

setTimeout('ok()',100);

}

imageReader.readAsDataURL(f);

}

}

function dropIt(e){

imagesSelected(e.dataTransfer.files);

e.stopPropagation();

e.preventDefault();

}

function thii(){

if(s_width||s_height){

document.getElementById('height').placeholder='h*('+s_width+')/w';

document.getElementById('width').placeholder='w*('+s_height+')/h';

}else{

document.getElementById('height').placeholder='留空为默认高度';

document.getElementById('width').placeholder='留空为默认宽度';

}

}

function ok(){

window.img=document.getElementsByClassName("image");

num.innerHTML="共"+window.img.length+"个文件";

for(i=0;i

num.innerHTML+="
"+window.img[i].title+':w'+window.img[i].width+'*h'+window.img[i].height;

}

var jpg=function(type){

window.type=type;

textarea=document.getElementById('textarea');

done=document.getElementById('done');

done.innerHTML='';

donen=document.getElementById('donen');

donen.innerHTML='';

for(i=0;i

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

h=window.img[i].height;

w=window.img[i].width;

img_height=null;

img_width=null;

if((!s_height)||(s_height==0)){

img_height=null;

}else{

try{

img_height=eval(s_height);

}catch(exception){img_height=0;}

}

if((!s_width)||(s_width==0)){

img_width=null;

}else{

try{

img_width=eval(s_width);

}catch(exception){img_width=null;}

}

img_height=(typeof(img_height)=='number')?img_height:h;

img_width=(typeof(img_width)=='number')?img_width:h;

span.innerHTML='';

document.getElementById("done").insertBefore(span,null);

//var span=document.createElement('span');

}

setTimeout('end()',500);

}

function end(){

type=window.type;

window.canvasv=document.getElementsByClassName("canvas");

donen=document.getElementById('donen');

//donen.innerHTML='';

for(i=0;i

canvas=window.canvasv[i];

can=canvas.getContext("2d");

imge=window.img[i];

can.fillStyle="#000000";

can.fillRect(0,0,img_width,img_height);

can.drawImage(imge,0,0,img_width,img_height);

can.save();

try {

eval(textarea.value);

}

catch(exception) {

alert("textarea内容错误,已恢复默认输出");

can.restore();

}

type="image/"+type;

myWindow=window.open('',window.img[i].title,'width=500,height=500,top='+(i*2)+'0,left='+(i*5)+'0')

var sz="

"+window.img[i].title+" %22+canvas.toDataURL(type)+%22
右击保存";

//donen.innerHTML+=sz;

myWindow.document.write(sz);

myWindow.focus()

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值