为了账号安全,请及时绑定邮箱和手机立即绑定

关于客户端JS能否等比例压缩图片的请教

关于客户端JS能否等比例压缩图片的请教

小怪兽爱吃肉 2017-06-13 10:10:34
当用户通过浏览器上传图片时,不管用户用了多大的图片,都使其能够上传,现在想用JS先在浏览器上对图片进行压缩处理,然后上传,而不是将整个图片上传到后台服务器然后在压缩后存储。请问这种方案是否可行?新浪微博在上传图片的时候是怎样一种解决方案?请各路大牛不吝赐教!谢谢。
查看完整描述

7 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

<script language="JavaScript" type="text/javascript"> 

function DrawImage(ImgD,FitWidth,FitHeight) 

var image=new Image(); 

image.src=ImgD.src; 

    if(image.width>0 && image.height>0) 

    { 


        if(image.width>FitWidth) 

        { 

            ImgD.width=FitWidth; 

            ImgD.height=(image.height*FitWidth)/image.width; 

            if(ImgD.height>FitHeight)

            {

                ImgD.height=FitHeight; 

                ImgD.width=(image.width*FitHeight)/image.height; 

            }

        } 

        else if(image.height>FitHeight) 

        { 

            ImgD.height=FitHeight; 

            ImgD.width=(image.width*FitHeight)/image.height; 

            if(image.width>FitWidth)

            {

                ImgD.width=FitWidth; 

                ImgD.height=(image.height*FitWidth)/image.width; 

            }

        }

        else

        { 

            ImgD.width=image.width; 

            ImgD.height=image.height; 

        } 

    } 

</script>

最近做一个页面时用到的,不知道符不符合你的需求!


查看完整回答
反对 回复 2019-04-11
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

也可以考虑用flash去实现压缩上传的功能


查看完整回答
反对 回复 2019-04-11
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

python的话,直接用PIL在服务器端处理就可以了,没必要做在客户端用js做


查看完整回答
反对 回复 2019-04-11
?
守着一只汪

TA贡献1872条经验 获得超3个赞

客户端的js改变图片的宽度和高度 是很难做到效果漂亮的,大部分情况都是服务器端语言压缩的


查看完整回答
反对 回复 2019-04-11
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

关于JS前端图片压缩 这里有详细的方案
http://www.imwinlion.com/archives/158
摘录一段如下,应该是你想要的

这个场景的难点在于图片压缩,为什么是图片前端压缩?首先,因为当前用户基本上是大屏手机,一个图1-4M,是很正常的,但是用户参与活动的时候,未必愿意花这个流量,这样这个活动关上传图片这一步,就会降低很多用户参与的欲望了。其次,用户的网络状态未必很好,虽然用户3G很普遍,4G成规模,WIFI热点也很多,但是上传这么大的一张图,以2M估算,每秒上传速度100KB,也要20秒,难保这20秒时间网络不出任何差错。再次,用户未必愿意等待这么长的时间。解决方案在哪里?,答案是前端压缩,这里笔者常用的插件是lrz下载地址如下,也给个demo


查看完整回答
反对 回复 2019-04-11
  • 7 回答
  • 0 关注
  • 778 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信