短视频平台搭建图片压缩
压缩为 webp 格式
安装插件
npm install --save imagemin
npm install --save imagemin-webp
压缩图片
const images = ['F:/a_desktop/20200330_143904.png', 'F:/a_desktop/20200330_143902.png'] // 一定要是 /, 因为这里使用的是 glob 匹配模式, 如: 'images/*.{jpg,png}'
const output = 'F:/a_desktop/output'
const quality = 80
const webps = await imagemin(images, {destination: output,plugins: [imageminWebp({quality: quality,}),],
});
// console.log("--- webps: ", typeof(webps));
// [{data: <Buffer 89 50 4e …>, destinationPath: 'build/images/foo.jpg'}, …]
const resArr = Object.keys(webps).map(key => webps[key].destinationPath);
vscode 中的完整源码
PicTool.ts
const imagemin = require('imagemin');
const imageminWebp = require('imagemin-webp');class PicTool {// images 是一个 glob 数组, 如: ['images/*.{jpg}']public static imageminToWebp(images: string[], output: string, quality: number) {return new Promise<string[]>(async (resolve, reject) => {const webps = await imagemin(images, {destination: output,plugins: [imageminWebp({quality: quality,}),],});// console.log("--- webps: ", typeof(webps));// [{data: <Buffer 89 50 4e …>, destinationPath: 'build/images/foo.jpg'}, …]const resArr = Object.keys(webps).map(key => webps[key].destinationPath);resolve(resArr)});}
}export default PicTool;
使用
import PicTool from './PicTool';// 是否自动上传, vscode 配置参数
export interface IQiniuAuto {isCompress: booleanisAutoUpload: boolean // 是否监听文件quality: number // 压缩质量isUpload: boolean // 用于是否上传
}// 压缩图片
let autoCfg = this.cfg.get<IQiniuAuto>(E_CONFIG.autoUploadQiniu);
if (autoCfg.isCompress) {const tempDir = path.join(vscode.workspace.rootPath, 'compressTempSave');const picArr = await PicTool.imageminToWebp(filePathArr, tempDir, autoCfg.quality) // 关键代码for (const srcFile of filePathArr) { // 删除 原图Utils.delFileSync(srcFile);}filePathArr = picArr // 生成压缩图路径数组
}
短视频平台搭建图片压缩相关推荐
- 短视频平台搭建,移动端商品下单、购买过程的实现
短视频平台搭建,移动端商品下单.购买过程的实现 代码部分 @charset "utf-8"; /* CSS Document *//*公用的*/ .comWidth{margin- ...
- 关于短视频平台框架搭建与技术选型探讨
近年来,互联网高速发展,电视等传统媒体加速向媒体融合方向迈进,在三网融合等政策推动以及视频云技术.互动技术.大数据分析等新技术加速应用的背景下,无视频,不网络,短视频成为最重要的信息载体之一.构建高效 ...
- 短视频平台开发,将图片、视频保存到本地的相册中
短视频平台开发,将图片.视频保存到本地的相册中实现的相关代码 获取本地相册 - (IBAction)goodsButton1Touch:(id)sender {//拿到获取相册的权限if([UIIma ...
- 短视频平台开发,首先要搭建短视频框架
科技发展,技术进步,音视频异军突起.无视频,不网络,短视频成为最重要的信息载体之一,是互联网核心组成部分.如何进行短视频平台开发,是慎之又慎的问题.从架构的角度,探讨短视频平台的构建与技术选型问题.从 ...
- 短视频app源码开发,短视频平台框架搭建
科技发展,技术进步,音视频异军突起.无视频,不网络,短视频成为最重要的信息载体之一,是互联网核心组成部分.构建高效的短视频app源码,是慎之又慎的问题.从架构的角度,探讨短视频app源码的构建与技术选 ...
- 劣势者效应下,B站等短视频平台UP主“卖惨”吸睛又吸金?
图片来源于网络 文|陈小江 来源 | 螳螂财经(ID:TanglangFin) 如果被人卖了,还在帮人数钱,是不是觉得很可悲? 不,有人会觉得你很无情! 最近,B站一位自称"癌症晚期&quo ...
- 网易MCtalk Live:漫谈短视频平台概况,全面解读头部内容
章少轩 网易薄荷直播产品经理,前花椒直播内容方向产品经理 对明星.PGC直播及短视频内容的商业变现有独到见解 作者简介 从开眼.V电影,到秒拍.美拍,再到快手.抖音,各类短视频APP层出不穷.当大量猎 ...
- 玩玩短视频平台和网课平台开发1——腾讯云对象储存COS的初步配置
近一两年来,抖音.快手等以短视频为手段的社交工具红遍了大江南北,腾讯也推出了"微视"平台,希望分一杯羹:传统的直播平台如:斗鱼直播.虎牙直播就更不用说了,甚至涌现了许多主打&quo ...
- 全网首创Python某短视频平台百叶窗短视频卡点自动混剪第1版
最近朋友发给我一个某短视频平台的视频问我程序能不能做,于是乎打开电脑先瞅瞅. 这模板居然要6块钱,而且音乐.片段都限制太死了.不好不好,然后这视频看了几遍花了2个晚上搞出来一套Python全程素材内容 ...
最新文章
- Map集合练习之对字符串中字母出现的次数求和
- 无根树转有根树的一般方法
- 怎么解决tomcat占用8080端口问题
- Oracle之自治事务
- 结对编程1-基于GUI的四则运算生成器
- 关于AE大数据点文件读取生成SHP文件时使用IFeatureBuffer快速提高读取效率
- 又有微软AI科学家流向产业,小鹏汽车迎来视觉感知负责人郭彦东
- java web编码详解_Java Web 之编解码分析
- (二)面向对象设计原则
- 高中计算机评课,高中信息技术优质课评课范文
- 【Beta】 第二次Daily Scrum Meeting
- [Eclipse]GEF入门系列(二、GEF概述)
- Flink之DataSet迭代计算
- spdlog日志安装与使用
- 孙溟㠭(展)为秘鲁总统夫人‘埃莲娜卡尔普托莱多’女士治名章篆刻印章
- 立体栅格地图_三维栅格地图构建之二:视差图及点云图 | 学步园
- python中redis incr的使用
- git 和 phabricator arc 常用 命令解析
- MMR: 控制推荐多样性算法
- RT-Thread 内存泄漏分析利器 memtrace+ramdump
热门文章
- python-列表元素绝对值排序
- 2017.06.15-2016.06.18回顾 loc/iloc/ix dataframe相关 oracle无自增去重 correl
- 高并发部署策略 多副本服务+nginx均衡负载
- Java前端和后端的区别?
- 预处理命令不是c语言本身的组成部分,C中的预处理命令
- python实现有道词典翻译
- 全网最硬核 JVM TLAB 分析 1. 内存分配思想引入
- 百度区块链 XuperChain开发教程(第二部分)
- C/C++ 项目必读:代码格式化和静态分析检查的一站式工作流 Cpp Linter
- 51单片机与ESP8266轻松上手Onenet(二)--onenet AT指令测试