Open ncepuwanghui opened 4 years ago
这个问题,你具体是怎么传的?是拖放或选择图片文件上传,还是截图后直接粘贴的?
另外你试试把压缩等级调到9,看看还会这样吗?这个压缩是用zlib库压缩的,具体我也不太清楚,你有兴趣可以去看看zlib的9个等级,我建议是用9试试。
PNG图片我是选择图片文件上传的。
@xiebruce 今天一直无法上传,Cloudinary无法上传,我切换到阿里云OSS测试也不行,我注释掉error_reporting(0);
后看到有如下错误信息:
域名解析正常,
我对照https://curl.haxx.se/libcurl/c/libcurl-errors.html
看了下错误码,如下:
我试了一下,这两个我这边都是正常的,如果你有代理,可以给cloudinary加个代理试试。
至于阿里云,报的是AWS的错,可能是因为我用了兼容S3的接口吧(因为非兼容s3的接口老出问题),这个,我也不知道怎么解决,感觉应该不是代码的问题,因为我这边上传也没问题,我估计你换个网络可能就正常了,如果是笔记本的话,不妨用手机共享个wifi试试,如果是台式机,貌似没法换网络试
报的这些错,都是sdk报的,所以我这也没法调,而且报的都是DNS的问题,不过你ping又没问题,所以,我也不知道怎么调,只能换个网络试试会是什么情况了
@xiebruce 我查了下,我本地测试的那张PNG图片,alpha通道未启用(一个像素RGB,3个字节),但是在压缩时设置了Alpha通道(使用RGBA,4个字节)所以压缩后文件大小变大了。 原始PNG图片详细信息: 压缩后PNG图片信息:
看了下,源码中涉及图片加载、创建、缩放、裁剪等处调用方法imagesavealpha
,并将Alpha通道保saveflag设置成了true。
另外,看到源码中EasyImage加载图片方法中imagealphablending方法和imagesavealpha方法顺序是不是反了,需要调整
参考如下:
不是所有的图片都有Alpha通道,能否在设置Alpha通道时判断原始图片是否启用了Alpha通道,如果未启用则加载图片压缩等处理后也不设置alpha通道。
@ncepuwanghui 我感觉那个顺序应该是没关系的吧,imagesavealpha
只是设置一个标记,表示最后保存的时候要保存alpha通道,imagealphablending
也只是标记最后保存的时候是否使用混合模式,它们应该不存在先后关系,我有空再看看,不知道能不能判断有没有alpha通道
@ncepuwanghui 我试了一下,用ps的文件→导出→存储为web所用格式,然后设置导出格式为png-8,这样保存的图片就是无alpha通道的png格式图片,我试着把PicUploader里imagesavealpha()
设置为false,也就是不保存alpha通道,但最后生成的文件一样比原文件大很多,我不知道什么原因,如果你找出了解决方法可以告诉我哈哈。
我这边没有开启压缩,但是复制上传文件大小也会变大 本地选择图片没有问题.
额, 改了下配置,全都拉满 , 好了.. 压缩的话交给了imgbot ..
原文件大小:
上传后的文件大小:
压缩参数配置:
请求头:
这个问题看起来和issue #7 有点像