上传图片时文件过大怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传图片时文件过大怎么办?相关的知识,希望对你有一定的参考价值。

如题

可以使用photoshop软件将图片的品质调低,就可以将图片文件大小变小。具体的设置方法如下:

一、打开photoshop软件界面,点击左上角的文件选择打开按钮。

二、在弹出的对话框中,选择需要调整大小的图片,然后点击打开按钮。

三、打开该图片后,点击左上角的文件选择存储为按钮。

四、在出现的保存对话框中选择图片格式为上传要求的格式,点击保存按钮。

五、在出现的JPEG选项中拉动大小文件中间的按钮,可以看到预览中文件的大小。当文件大小满足要求以后点击确定按钮。

六、打开图片存储位置就可以看到,之前1.54MB的图片调整为了320K,如图所示。

参考技术A 很多时候我们都会碰到小程序上传图片时因为图片过大而导致请求失败,同时出现各种各样的问题,那么今天来给大家写一个微信小程序上传图片过大导致请求失败的完美解决办法。

以云开发小程序图片检测为例,如果图片过大就会出现以下报错:

<'errCode': -404012, 'errMsg': 'cloud.callFunction:fail error while waiting for the result; at cloud.callFunction api;>

图片过大,所以应该压缩图片
官方给出了一个 wx.compressImage接口用于压缩图片,该接口在开发工具和ios系统都表现良好,但是却在安卓机上几乎没有一点效果,所以这个方案被迫放弃了。于是在网上看到了另一种压缩思路,通过canvas绘制压缩图片,canvas在一般小程序中通常用于海报的生成,我们就是通过这种方式生成一张比原图要小的图片,这样就可以起到压缩效果了。

创建一个canvas标签
这个需要在wxml中创建,不然没有画布,就没办法进行绘图了,代码如下:

<canvas canvas-id="canvas" style="width:cWidthpx;height:cHeightpx; position: absolute;left:-1000px;top:-1000px;"></canvas>

因为该canvas并不需要显示在页面上,所以我们把他写在了页面之外,其中cWidth和cHeight分别是画布的宽和高,因为图片的比例不一,所以这里采用动态数据,这样可以保证图片的等比例缩放。

编写压缩图片函数
下面的函数是在网上看到的一个版本,觉得挺好的,就直接放出来给大家学习一下,也可以直接调用。

compressImg: function(e)

var that = this;

console.log(e)

wx.getImageInfo(

src: e,

success: function(res)

//---------利用canvas压缩图片--------------

var ratio = 2;

var canvasWidth = res.width //图片原始长宽

var canvasHeight = res.height

while (canvasWidth > 200 || canvasHeight > 200) // 保证宽高在200以内

canvasWidth = Math.trunc(res.width / ratio)

canvasHeight = Math.trunc(res.height / ratio)

ratio++;



that.setData(

cWidth: canvasWidth,

cHeight: canvasHeight

)

var ctx = wx.createCanvasContext('canvas')

ctx.drawImage(res.path, 0, 0, canvasWidth, canvasHeight)

ctx.draw(false, setTimeout(function()

wx.canvasToTempFilePath(

canvasId: 'canvas',

destWidth: canvasWidth,

destHeight: canvasHeight,

quality: 0.3, // 压缩倍率

success: function(res)

console.log(res.tempFilePath) //压缩过后的最终图片路径

,

fail: function(res)

console.log(res.errMsg)



)

, 100))

,

fail: function(res)

console.log(res.errMsg)



)

,

通过该函数压缩后,图片大小将大大减小,还可以通过控制canvasWidth来改变压缩的比例,就是代码块中的200,还想更小就把200减小,大点,就增大。
通过这样的方式可以把原本几M的文件,压缩到小于100K,这样在请求上传中,都不会在出现微信小程序上传图片过大导致请求失败的现象了。
参考技术B 回答

你好 亲 有些图片太大是上传不了的,因为上传图片格式大小是有范围的 ,超过范围就会显示太大了。解决方法:调整图片大小。打开照片所在的文件夹,指针移到照片上,右击鼠标,在弹出菜单中选择‘打开方式’中的‘画图’在菜单栏中单击‘图象’,选择‘拉伸/扭曲’在横向和竖向的框中填入数值,照片大小会改变

参考技术C 右击要修改的图片——打开方式——画图——选择上面“重新调整大小”——选择“像素”——现在要调整最最最上面的水平和垂直两个数字。这两个数字,如果哪个数值大一些,就把这个数值改成1024,其他不用改,系统会自动跟着改——点击确定。
左上角“粘贴”上方是亮一点的蓝色键,点击亮蓝色——另存为——JPEG文件——选择你要存的地方——保存——结束。
一般搞定后的照片大小都在300k以下。
参考技术D 上传文件太大可以先点击鼠标右键,将此文件进行压缩,然后再发送已经压缩好的文件即可。1.
系统一般都会自带WinRAR压缩软件.打开电脑找到你要分卷压缩的文件.如图
2.
选中文件或文件夹右键——选添加到压缩文件.压缩文件名及参数弹出对话框.如图
3.
你可以对压缩文件进行命名,如果要分卷压缩—— 选择单位如:MB.如图
其实,不需要专门的软件,利用windows自带的画图软件,就能够帮助我们解决这个问题.
2.
在要编辑的图片文件上,右击鼠标,弹出菜单中选择“编辑”或“打开方式”——“画图”.
3.
打开文件后,无需进行任何修改、编辑操作,然后就可以依次点击菜单栏中的菜单项“文件”——“保存”.

为啥我在论坛上传图片附件时总是有个来自网页的提示

网页提示
无效的图片文件 这是怎么回事……还有我不要什么外连传图就想问下这个

请高手们给出解决方法……请不要翻以前的那些答案我看了……没几个答得详
细……我要详细……最好给出解决方法!!谢谢了!!
那啥……补充下……论坛可以传这些格式的,就是传的时候提示无效的图片文件
还有……图片我是用附件方式传的……
注:是DZ论坛DZ7.0的……

取消外联很简单

首先把你要的图片保存在电脑里

然后找一个好用的图片上传网站上传该图片

复制图片地址

黏贴到论坛帖子里的图片链接代码中间

就可以永远显示了

再不懂就用百度 HI 我
参考技术A 可能论坛不让上传,用画图把图片换一种格式试一试 参考技术B 图片是别的论坛 空间的 人家添加了保护 外传就不显示了 参考技术C 传个图片只要格式正确,貌似应该没有问题,
是不是图片大小不符合要求

以上是关于上传图片时文件过大怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

请问上传图片时尺寸过大该怎么办??

uni-app 图片上传压缩方法 拍照图片过大

我做asp程序,上传图片后删除或修改文件时图片不能修改,占空间,谢谢大家

为啥我在论坛上传图片附件时总是有个来自网页的提示

ASP上传图片提示文件名重复?

ThinkPHP6上传图片七牛云 如何上传文件到七牛云对象储存cos