项目上需要保存高清图片,不希望图片压缩太多,故分享一下Python下面的图片高质量保存,内容基于常用的PIL和opencv 一.Python PIL 1、在使用PIL image处理图像要获取高质量的关键地方是下面两点...Python OpenCV 1、使用opencv保存图像 cv2.imwrite(存储路径,图像变量, [存盘标识]) 2、存盘标识说明: 1、cv2.CV_IMWRITE_JPEG_QUALITY 设置图片格式为....jpeg或者.jpg的图片质量,其值为0---100(数值越大质量越高),默认95 2、cv2.CV_IMWRITE_WEBP_QUALITY 设置图片的格式为.webp格式的图片质量,值为0...--100 3、cv2.CV_IMWRITE_PNG_COMPRESSION 设置.png格式的压缩比,其值为0--9(数值越大,压缩比越大),默认为3 3、存盘标识示例: cv2.imwrite...('img.jpg',img,[int(cv2.IMWRITE_JPEG_QUALTY),70]) 把img变量保存到img.png,图片品质为70 4、不同类型图片说明: 保存png图像,图像后缀必须为
前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传,...文件上传后,在访问文件时中也有图片的压缩配置选项,不过,能不能自己撸一套 JS 实现的图片压缩代码呢?...压缩思路 涉及到 JS 的图片压缩,我的想法是需要用到 Canvas 的绘图能力,通过调整图片的分辨率或者绘图质量来达到图片压缩的效果,实现思路如下: 获取上传 Input 中的图片对象 File 将图片转换成...base64 格式 base64 编码的图片通过 Canvas 转换压缩,这里会用到的 Canvas 的 drawImage 以及 toDataURL 这两个 Api,一个调节图片的分辨率的,一个是调节图片压缩质量并且输出的...,后续会有详细介绍 转换后的图片生成对应的新图片,然后输出 优缺点介绍 不过 Canvas 压缩的方式也有着自己的优缺点: 优点:实现简单,参数可以配置化,自定义图片的尺寸,指定区域裁剪等等。
PIL 库安装直接pip install pillow就好了 PIL 库的 resize() 方法可以修改图片尺寸,里面的参数需要整数,所以我用 int 转化了一下。...等比例就是通过 size 属性获取图片的宽和高,然后同步缩小相同的倍数就可以了。...img = img.resize((int(width*0.3), int(height*0.3)), Image.ANTIALIAS) img.save("love.jpg") 运行效果图: 原图片...1980*1080 的,180k 左右,压缩后效果如下。...注:不足之处就是缩小后的图片有点失真,如果小伙伴们有什么好方法可以评论区留言哦!
选择一张图片 const img_original = document.getElementById('img_original'); const img_output = document.getElementById...使用Canvas压缩 function compress() { // 压缩到图片原始宽高的一半 let w = img_original.naturalWidth...ctx.drawImage(img_original, 0, 0, w, h); const base64 = canvas.toDataURL('image/jpeg', 0.75);// 压缩后质量...bytes.charCodeAt(i); } blob = new Blob([ab], {type: 'image/jpeg'}); console.log('压缩后的图片大小...', blob.size); // 预览压缩后的图片 img_output.src = base64 } 3.
插播一下,本文案例已整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。...JavaScript 操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。 ?...如果你有足够的耐心多传几种类型图片就会发现还存在如下问题: 压缩输出图片寸尺固定为原始图片尺寸大小,而实际可能需要控制输出图片尺寸,同时达到尺寸也被压缩目的; png 格式图片同格式压缩,压缩率不高,还有可能出现...压缩输出图片寸尺固定为原始图片尺寸大小,而实际可能需要控制输出图片尺寸,同时达到尺寸也被压缩目的; 为了避免压缩图片变形,一般采用等比缩放,首先要计算出原始图片宽高比 aspectRatio, 用户设置的高乘以...将改进版图片压缩整理成插件,已上传 npm ,可通过 npm install js-image-compressor -D 安装使用,可以从 github 下载。 整理匆忙,如有问题欢迎大家指正,完~
/ 缩放图片 public static Bitmap zoomImg(String img, int newWidth ,int newHeight){ // 图片源 Bitmap bm = BitmapFactory.decodeFile...return null; } public static Bitmap zoomImg(Context context,String img, int newWidth ,int newHeight){ // 图片源...catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } // 缩放图片...public static Bitmap zoomImg(Bitmap bm, int newWidth ,int newHeight){ // 获得图片的宽高 int width = bm.getWidth...取得想要缩放的matrix参数 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); // 得到新的图片
现在网上的高清原图尺寸也有好几M甚至更大,而且现在手机像素高了拍出来的照片也特别大,所以有时候需要对用户上传图片时进行压缩处理。...图片压缩的原理:将图片重新画入到canvas画布里面,再将canvas转成图片的形式。...图片压缩js代码: function compressedImg(path, callback) { var img = new Image(); img.src = path;...canvas.toDataURL('image/jpeg', quality); // 回调函数返回base64的值 callback(base64); } } 预览图片及压缩代码...DOCTYPE html> JS图片压缩 <body
对于绝大多数都布局,我们并不要求非要比例固定,但是有一种情况例外,那就是图片,因为图片原始尺寸它是固定的。...在传统的固定宽度的布局下,我们会通过给图片设定具体的宽度和高度值,来保证我们的图片占据区域稳固;但是在移动端或者在响应式开发情况下,图片最终展现的宽度很可能是不确定的,例如手机端的一个通栏广告,iPhone7...二、CSS百分比padding与宽度自适应图片布局 但是有时候我们的图片是不方便作为背景图呈现的,而是内联的,百分比padding也是可以轻松应对的,求套路是比较固定的,图片元素外面需要一个固定比例的容器元素...对于复杂布局,如果图片的宽度是不固定的自适应的,我们通常会想到这么一个取巧的做法,就是只设定图片的宽度,例如: img { width: 100%; } 此时浏览器默认会保持图片比例显示,图片宽度大了,...但,有时候,图片宽度并不是100%容器的,例如,图片宽度50%容器宽度,图片高宽比4:3,此时,CSS垂直方向百分比就666了,如下: .img-box { padding: 0 50% 66.66%
图片等比例缩放方案 在Web开发时无可避免的需要将图片进行缩放,缩放时需要保证图片不变形,也就是需要等比例缩放。...设定宽度或高度 引入图片时,仅设置图片的width或者是height就可以使另一边自适应,从而实现等比例缩放。...,仅设置图片的max-width或者是max-height就可以使另一边自适应,从而实现等比例缩放。...justify-content: center; } #t5 > img{ max-width: 100%; max-height: 100%; } 使用Js...DOCTYPE html> 图片等比例缩放 #t1{
资源链接:https://download.csdn.net/download/qq_35866846/12105054 图片大小调整批处理:固定宽度等比例缩放 主要库:PIL.Image 优劣对比:...PS自带批处理 2-3 张/秒 pythonPIL库 27-28张/秒 from PIL import Image import os,time old_path=r"测试\\" #原图片的存放地址...new_path=r"测试_调整\\" #调整后图片的存放地址 pic_names=os.listdir(old_path) width=180 def resize_by_width(old_path...try: resize_by_width(old_path,new_path,pic_name,width) b+=1 print("第 %s 张图片...)) end=time.time() print("共计 %s 张图片调整完成,成功 %s 张,失败 %s 张,耗时 %s 秒"%(a,b,c,(end-start))) 参考资料: https://
在很多时候我们都会使用到PNG格式图片,而PNG图片由于其是一种无损的图片格式,它的文件会比较大,为了节约流量、提高加载速度,我们需要对欲上传的图片进行压缩。...兜兜转转一圈,我使用最多的图片压缩工具仍然是 TinyPNG,这个在线服务压缩率高、画质损失小,方便了我为文章配图。 ? TinyPNG检索密钥后,可以立即开始缩小图像。...官方客户端库可用于Ruby,PHP,Node.js,Python,Java和.NET,还可以使用WordPress插件压缩JPEG和PNG图像。...的图片压缩数量,你就说屌不屌吧。...TinyClient是一个超强压缩图片的小工具,压缩率可以达到50%以上,压缩质量接近无损。是一个基于Electron和Tinypng的图片压缩客户端工具。
题目 图像文件压缩。使用PIL库对图像进行等比例压缩,无论压缩前文件大小如何,压缩后文件大小小于10KB。...image.save(f_path) size = os.path.getsize(f_path)/1024 else: break str_info = "压缩完成
一、序言 使用Nginx作为web应用服务时,会代理如下常见文件:js、css、JSON、图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案。...二、网络压缩 此部分所有的压缩内容在浏览器端都会还原,特别需要指出的是图片,图片在网络间是压缩状态传输的,到达浏览器后是会被还原的。...(一)Web资源 1、静态资源 前端项目中js/css文件越来越大,对其执行压缩处理越来越有必要。...图片压缩分为两类:一是等比压缩;二是固定宽高压缩。根据应用场景的不同也分为两类:一是固定参数;二是动态参数。 此部分图片压缩后到达浏览器不会被还原。...(一)等比压缩 使用关键词resize实现等比压缩,指定宽度或者高度即可在原尺寸图片的基础上等比率压缩图片。如果同时指定宽度和高度,只有一个参数生效。
图片压缩流程 压缩图片基本流程 input 读取到 文件 ,使用 FileReader 将其转换为 base64 编码 新建 img ,使其 src 指向刚刚的 base64 新建 canvas ,将...JS 压缩比例在0.9以下都会明显的文件变小,建议0.8。 图片压缩...* @param {Object} file 图片文件 * @param {String} type 想压缩成的文件类型 * @param {Nubmber} quality 压缩质量参数...* @returns 压缩后的新图片 */ export const compressionFile = async(file, type = 'image/jpeg', quality = 0.5)
使用开源工具:thumbnailator 从jpg、jpeg、png(3.44MB)压缩到440kb也非常清晰,可自动设置压缩程度(0-1),目前压缩成为jpg的比较理想,压缩后为png并不能减少多少...,可能是由于png是属于无损压缩 1、截止2022-5-18最新版本为0.4.17 使用方便 size(width,height):图片宽高比。...forceSize:压缩至指定图片尺寸(例如:横400高300) scale:指定图片的大小,值在0到1之间,1f就是原图大小,0.5就是原图的一半大小,这里的大小是指图片的长宽。...遇到的问题 可能会出现OOM内存溢出的现象 ,需要调整-Xss大小 java启动命令nohup java -jar -Xmx6000m XXX.jar >/dev/null 2>&1 /** * 压缩图片...log.error("关闭输出流失败{}", e.getMessage()); } } catch (IOException e) { log.error("压缩图片处理失败
ps处理图片直接保存后,往往图片很大,png的格式一般比jpg的大,若保存方式为:存储为web所用格式,这种情况图片会小些,(若选png24格式勾选交错),处理后的图片如果还不能满足要求,现有2个比较好的压缩工具
github地址 Squoosh是一个图像压缩网络应用程序,可通过多种格式减小图像大小。 API & CLI Squoosh 有一个 API和一个 CLI可以一次压缩许多图像。...所有图像压缩过程都在本地进行。 但是,Squoosh 使用 Google Analytics 来收集以下信息: 基本访客数据。 前后图像大小值。
1.前因 因需要在系统上传图片,但系统要求图片大小不超过4M,如果手动来压缩,因图片量大会效率低下,得不偿失。...,还未使用过,不知压缩能力 资料6: 自认为学过一点点算法,在网上找来一些算法压缩图片的文章,PCA算法 https://heartbeat.fritz.ai/image-compression-using-different-machine-learning-techniques...1.png' output_filename = '图片2.png' tinify.from_file(filename).to_file(output_filename) PIL压缩,遇到一些小问题...,但最后发现是自己不懂图片有关的知识导致。...在使用save保存时,若是保存为png,就是的压缩后的图片比原图还是要大,原因是() 待补充(捂脸)。保存为jpg后会是真正的压缩变小。
领取专属 10元无门槛券
手把手带您无忧上云