CatchZeng's Blog

记录开发的所见所闻

优化安装包大小 -- AppThinning Desktop

JS

一、前言 在文章优化安装包大小中,我们介绍了常见的优化安装包大小的方法,并写了一个脚本工具 AppThinning ,帮助自动找到大文件,然后进行图片压缩。然而,实际运用中图片的前期处理者经常是设计师,脚本对于他们来说始终不够方便,于是诞生了AppThinning Desktop。 二、AppThinning Desktop 1、安装前准备 若使用 ImageOptim ...

DevOps 是一种怎样的体验?

DevOps

一、软件开发演变史 软件行业中,每一个概念的提出都是为了解决某个特定的问题。要了解 DevOps ,就要讲下软件开发的演变史。 传统瀑布模型 需求分析,软件设计,程序编写,软件测试,运行维护。 瀑布模型被淘汰的原因 各个阶段的划分完全是固定的,阶段之间产生大量的文档,极大地增加工作量。 由于开发是线性的,所以用户只有在开发的末期才可以到成果,所以增加了风险。 早起...

Go web编程

Go

专栏简介 分享 Go web 编程。在这里你可以了解到什么是 Go,为什么越来越多人喜欢它。在实践中也能了解到 web 编程的知识。 核心内容 Go 语法; 单元测试; Go 包管理工具; web 编程; gin web 框架; restful API; web 项目 docker 化; …… 适宜人群 喜欢 Go 语言的开发者; 希望了解 web 编程的移动开发者...

Android Maven 私有库

Android

一、前言 Maven Maven 是一个项目管理和自动构建工具。Maven 包是由 POM(Project Object Model)所定义的文件包格式。Maven 包集中存放的地方,就是 Maven 仓库。这些仓库,可以是放在本地,也可以放在某个远程服务器上。 可以是私有仓库,也可以是公开的。使用方式如下 allprojects { repositories { ...

被轻视的持续集成

持续集成

专栏简介 分享持续集成的理论和实践。在这里你可以了解到什么是持续集成、持续部署、持续交付。在项目上也能从现在的“模块化”、“组件化”到“工程化”。 核心内容 持续集成理论; 持续集成工具选型; 持续集成与 Git 工作流; 多项目、多平台持续集成平台构建; 持续集成、持续部署与持续交付; 适宜人群 希望了解持续集成的开发者或者管理者; 希望优化项目流程的项目经理; ...

Middleware(中间件)之道

设计模式

一、前言 在日常开发中,我们经常遇到逻辑复杂的业务,导致代码写得又长又乱。有些逻辑像一个流程,在不同的节点需要做不同的操作。 比如,我们经常会遇到上传文件的业务。该业务要求先验证文件正确性,然后上传,最后跳转到成功的页面。 if checkFile { uploadFile { result if result { ...

Learning OpenCV with iOS:图像模糊--非线性滤波

OpenCV

一、前言 上一篇我们讲解了OpenCV图像模糊中的线性滤波。本篇主要向大家介绍下非线性滤波。按惯例,先来看下效果图。 二、线性与非线性 上一篇中使用“卷积算子计算都是线性操作,所以又叫线性滤波”简单描述了线性滤波概念。下面我们详细了解下线性滤波与非线性滤波。 数学角度 数学里,一般说的线性,是说的线性映射: 线性 = 齐次性 + 可加性 齐次性: f(ax)=af(x)...

Learning OpenCV with iOS:图像模糊--线性滤波

OpenCV

一、前言 上一篇我们讲解了OpenCV的图像亮度和对比度调整。本篇主要向大家介绍下图像模糊。按惯例,先来一张效果图。 二、模糊 所谓模糊,可以先简单理解为每一个像素都取周边像素的平均值。 上图中,2是中间点像素值,周边像素都是1。 中间点取周围点的平均值,就会变成1。在数值上叫平滑。在图形上,就产生了模糊效果,也就是中间点失去了细节。 三、图像模糊 图像模糊...

Learning OpenCV with iOS:图像亮度和对比度

OpenCV

一、前言 上一篇我们讲解了OpenCV的图像混合与ROI。本篇主要向大家介绍下图像变换的调整亮度和对比度。按惯例,先来一张效果图。 二、图像变换 算子 一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。 单输入 g(x) = h(f(x)) 多输入 g(x) = h(f0(x)......fn(x)) 根据算子的不同,图像变换分为两大类: ...

Learning OpenCV with iOS:图像混合与ROI

OpenCV

一、前言 上一篇我们讲解了OpenCV的掩膜操作。本篇主要向大家介绍下图像处理中的图像混合。按惯例,先来一张效果图。 二、图片相加 要叠加两张图片,可以将Mat直接相加,相加两幅图片的形状(高度/宽度/通道数)必须相同。但这样的效果不一定是你想要的。我们来看一个例子。 Mat src; Mat src2; UIImageToMat(image, src...