webp

了解JS压缩图片,这一篇就够了

[亡魂溺海] 提交于 2020-08-17 11:58:05
前言 公司的移动端业务需要在用户上传图片是由前端压缩图片大小,再上传到服务器,这样可以减少移动端上行流量,减少用户上传等待时长,优化用户体验。 插播一下,本文案例已整理成插件,已上传npm ,可通过 npm install js-image-compressor -D 安装使用,可以从github 下载。 JavaScript 操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。 所以本文将试图解决如下问题: 弄清 Image 对象、data URL、Canvas 和 File(Blob)之间的转化关系; 图片压缩关键技巧; 超大图片压缩黑屏问题。 转化关系 在实际应用中有可能使用的情境:大多时候我们直接读取用户上传的 File 对象,读写到画布(canvas)上,利用 Canvas 的 API 进行压缩,完成压缩之后再转成 File(Blob) 对象,上传到远程图片服务器;不妨有时候我们也需要将一个 base64 字符串压缩之后再变为 base64 字符串传入到远程数据库或者再转成 File(Blob) 对象。一般的,它们有如下转化关系: 具体实现 下面将按照转化关系图中的转化方法一一实现。 file2DataUrl(file, callback) 用户通过页面标签 <input

E聊SDK-简介(8): 从源码编译微信小程序项目

丶灬走出姿态 提交于 2020-08-17 07:12:09
1.说明: 教程属于官方E聊SDK-简介(8) 进入官网 进入管理台 SDK版本:v1.02 技术交流QQ群: 471688937 2.小程序客户端简介: E聊SDK提供了一个基本的微信小程序客户端Demo源码,通过编译该客户端,可以接入E聊服务器,实现单聊/群聊等功能。移动客户端使用JavaScript 技术开发,适配了微信小程序平台。 3.操作步骤: 3.1 下载echatim-client-ts-core v1.02 源码, 编译出核心SDK E聊的微信小程序客户端依赖客户端核心SDK源码, 放置在 SDK客户端核心源码 内,故要先下载Web源码编译出适合E聊微信小程序的echatim-sdk.js git clone https://gitee.com/dzqmeiji/echatim-client-ts-core.git cd echatim-client-ts-core/ git checkout -b v1.02 v1.02 yarn wxlib # 编译出核心SDK到 dist/echatim-sdk.js 3.2 下载小程序 Release v1.02 源码, 安装相关依赖 git clone https://gitee.com/dzqmeiji/echatim-client-wx.git cd echatim-client-wx/ git checkout -b

来自老程序员的10条中肯建议

元气小坏坏 提交于 2020-08-15 03:46:37
以下十条建议是一个老程序员给出的建议,句句中肯,希望能引起你的思考,而不是笑笑就过去了。 觉得在理,不妨随手点赞收藏转发分享,谢谢~ 程序员的二八定律: 1.想清楚,再动手写代码 刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌! 2.不交流,就会头破血流 不爱说话和沟通,需求都理解错误了,最后做出来才发现,只能加班返工。 3.文档没人看,但还是要写 文档的作用大部分时候不是用来沟通的,是用来做记录的,大部分需求还是通过口头沟通,但是不写文档做记录,后续就容易扯皮。 4.一定要写注释 时间久了,你会连自己的代码都看不懂。 另外,注释不要乱写,想想虾米: 虾米穷逼 VIP 事件回顾和由此引发的思考 5.别指望需求会稳定 产品需求是根据商业需求不断调整的,改需求是再正常不过的事,别抱怨。 6.业务高于技术 如果技术不为公司商业做服务,那将毫无价值,公司赚钱才是硬道理。 7.不要心存侥幸 你隐约感觉会出bug的地方,就一定会出bug。 8.自己先测几遍 不要写完就扔给测试人员去测,经自己手的东西,要保证质量。 9.尽可能自己解决问题 遇到不懂的问题,要先尽力解决,别动不动就截个图扔在别人求帮忙,上司和同事不是来给你擦屁股的,但是真的搞砸了就要尽快求助。 10.慎用新技术 新技术是好东西,但没有百分百把握,自作主张用了,多半是作死。 在用新技术之前

flutter显示图片和弹窗使用方式大全

谁说我不能喝 提交于 2020-08-15 01:55:18
本示例包含 弹窗(对话框): showDialog、showAboutDialog、CupertinoAlertDialog、context共享性dialog(StatefulBuilder构建), 列表弹窗 showBottomSheet 、showModalBottomSheet、类似于Toast的 showSnackBar 提示 、各种按钮、列表、按钮水波纹效果、设置语言、右上角菜单 PopupMenuButton、PopupMenuItem等 图标加载示例包含: Icon、ImageIcon、NetworkImage、从内存解密(base64Decode)加载图片(Image.memory)、渐显式加载图片FadeInImage、给图片添加按下事件GestureDetector、Ink.image、从应用assets目录加载 Image.asset、图片圆角等 效果: 请先在flutter 根目录创建image文件,随便找两张图片命名为 bg.png 、aad.webp 放进去。 完整源码如下: main.dart import 'dart:convert'; import 'dart:math'; import 'dart:typed_data'; import 'package:flutter/cupertino.dart'; import 'package

自然语言处理十大应用

守給你的承諾、 提交于 2020-08-14 13:32:33
作者|ABHISHEK SHARMA 编译|VK 来源|Analytics Vidhya 介绍 自然语言处理是数据科学领域最热门的课题之一。公司在这一领域投入大量资金进行研究。每个人都在努力了解自然语言处理及其应用,并以此为生。 你知道为什么吗? 因为仅仅在短短几年的时间里,自然语言处理已经发展成为一种无人能想象的强大而有影响力的东西。 为了了解自然语言处理的力量及其对我们生活的影响,我们需要看看它的应用。因此,我列出了自然语言处理的十大应用。 那么,让我们从自然语言处理的第一个应用开始。 搜索自动更正和自动完成 每当你在谷歌上搜索某个东西,在输入2-3个字母后,它会显示可能的搜索词。或者,如果你搜索一些有错别字的东西,它会更正它们,仍然会找到适合你的相关结果。是不是很神奇? 它是每个人每天都在使用的东西,但从来没有太多的关注它。这是自然语言处理的一个很好的应用,也是一个很好的例子。它影响世界上数百万人,包括你和我。 搜索自动完成和自动更正都有助于我们更有效地找到准确的结果。现在,其他许多公司也开始在他们的网站上使用这个功能,比如Facebook和Quora。 搜索自动完成和自动更正背后的驱动引擎是语言模型。 语言翻译 你有没有用谷歌翻译来找出不同语言中的某个词或短语?它将一段文字用一种语言翻译成另一种语言的容易程度是相当惊人的,对吧?它背后的技术是机器翻译。

How to Install Oracle Database 12c on CentOS 7

隐身守侯 提交于 2020-08-14 06:50:22
How to Install Oracle Database 12c on CentOS 7 On this page Step 1 - Install required Packages Step 2 - Configure User and System Step 3 - Configure Desktop Step 4 - Download Oracle Database Step 5 - Install Oracle Database 12c Step 6 - Testing Reference Oracle Database is an object-relational database management system (RDBMS) developed by Oracle Corporation. The Oracle Database is available under a Proprietary and OTN Standard License. The supported operating systems are Redhat Enterprise Linux (x86-64), SUSE and Oracle Linux, Microsoft Windows x86-64 and IBM Linux. In this tutorial, I will

一分钟了解自动化测试【灵魂配图】

风流意气都作罢 提交于 2020-08-14 02:15:24
其实自动化测试已经不是一个新兴产物。为了写这个文章,我特意去百度百科搜索了一下,这个是百度自动化测试的官方定义。 接下来我们大约用一分钟的时间来了解自动化测试。尽量精简,有利于大家的阅读理解。 显而易见,掌握了自动化测试,薪资待遇是十分可观的。 首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如: * 了解 selenium、appium或者其他自动化测试框架 * 至少熟悉一门面向对象开发语言,有一定的代码功底优先 * 熟悉Java或者python,有一定的测试自动化经验和代码阅读能力 * 了解接口集成测试,会使用JMeter、Postman、SoapUI等接口测试工具 等等,上述内容不再一一列举。突然自动化测试遍地开花,好像测试工程师的自动化测试能力成为了标配一般。本文就从自动化测试的要求入手,简单的进行自动化测试扫盲,争取让各位在一分钟之内了解自动化测试。 那么我们就从“自动化测试”五个字来剖析。 #测试 测试:这个我们熟悉。最经典的一个解释“程序测试是为了发现错误而执行的过程。”这个来自于G.J.Myers的经典著作《软件测试的艺术》的定义,给我们展示了测试的本质:过程。 测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容: * 运行被测试的软件,执行软件的功能 * 运行其他工具,去检查软件的内部和外部

前端开发人员的救生工具

☆樱花仙子☆ 提交于 2020-08-13 16:36:25
在本文中,我为前端Web开发人员汇总了30种顶级工具,从代码编辑器和代码游乐场到CSS生成器,JS库等等。 目录 CSS代码生成器 CSS3 Generator 终极CSS Generator CSS Grid布局生成器 静态站点生成器 Next.js Gatsby SVG 优化器 SVGOMG SVG Optimizers 动画库 Animate.css GreenSock (GSAP) Anime.js 跨浏览器测试 Caniuse Am I Responsive? Responsive Web Design Checker BrowserStack 代码协作和游乐场 GitHub CodePen JSFiddle SoloLearn jsrun.net CSS代码生成器 你是否曾经尝试记住如何声明渐变,文本阴影,Flexbox或Grid的CSS属性,仅举几例?不容易。除非你一再使用某些CSS功能及其属性,否则很难记住所有这些功能。但是,即使是精通CSS的人有时也需要对某些属性进行复习,尤其是如果他们有一段时间没有使用它们了。 如果你需要一些最新和最伟大的CSS的快速帮助,这里有CSS生成器来拯救。输入数值,预览结果,抓取生成的代码并运行。 CSS3 Generator https://css3generator.com/ CSS3 Generator 是一款免费的在线应用

在canvas上绘制3d图形 -转载

馋奶兔 提交于 2020-08-13 16:03:09
项目简介 文章里有相当多的用到中学数学中的知识,推导3d的几何模型是如何绘制到2d平面中去的,最终利用推导出的结论编写代码,实现一个波纹的demo 项目地址: https://github.com/zz632893783/canvas-3d 效果13.gif 安装项目依赖模块 npm install 运行项目 npm run dev 从z轴观察yz平面上的点 01.png 想象一下有这么一个三维空间(如图),有一个点B,我们从A点观察B点。那么B点在xy平面上的投影即AB的延长线与平面xy的交点C。而xy平面不就是可以看一个二维的canvas画布吗。 我们暂且将A点放在z轴,B点放在yz平面,则A点的三维坐标可以表示为 A(0,0,zA),B点的三维坐标可以表示为B(0,yB,zB)。从B点做一条垂线垂z轴于D点。 ADB与AOC是相似三角形,所以有 图片3.png 变换得 图片6.png 其中DB即B点的y坐标,AO即A点的z坐标,DO即B点的z坐标,所以 图片7.png 这里的OC也就是C点的y坐标。 从z轴观察xz平面上的点 02.png 同理我们从A点观察平面xz上的某一点E(xE,0,zE),ADE与AOF是相似三角形 图片8.png 变换得 图片9.png 从z轴观察空间内任意坐标 之前所观测的B点是位于yz平面内,E点是位于xz平面内,但是如果是空间内任意位置的点呢

60个Chrome神器插件大收集~

有些话、适合烂在心里 提交于 2020-08-13 12:22:38
来源公众号:量子位 (QbitAI) 让WebP图片下载为PNG格式,从Github批量下载表情包,一键滚动截屏整个网页,助你快速成为B站老司机,一键分析网站技术栈,翻录网页视频神器等等。 这些功能,都能在Chrome中使用插件简单实现。 不信?你往下看就行了。 最近,GitHub上有个名为ChromeAppHeroes的项目登上了趋势榜。 与其他GitHub项目不同,它的目标聚焦在Chrome上。 目标是为优秀的Chrome插件写一本中文说明书, 让Chrome插件英雄们造福人类。 现在为止,整个项目中已经介绍了60个神器插件,覆盖功能很广泛。 每一个都让原来做起来非常复杂的事情变得非常简单,而且每一个插件都有安装教程与操作指南。 所以这个项目也得到了很多人的青睐,现在已经获得11K标星。 Chrome插件英雄榜都有啥? 1、markdown-here 可以在网页版QQ 邮箱、Gmail、163等邮箱里面,使用mardown格式进行书写,然后一键转换为富文本。 2、chrono 可以非常方便的嗅探识别网页中的资源, 然后一键下载所有资源。 3、Secure Shell App Windows并没有自带ssh软件,有了Secure Shell App,可以让你无需下载putty或xshell,就能在chrome直接实现ssh登录服务器了。 4、Tampermonkey