那片树海

用心做一件工艺品


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

使用Shell脚本批量压缩图片

发表于 2017-02-08 | 更新于: 2026-05-11

在开发过程中我们为了减小安装包的体积,我们一般会把工程当中的图片资源文件进行压缩。

在添加图片的时候进行压缩是一个好习惯,但是对于工程当中的大量图片进行压缩替换是一个不小的工作量,而且还有可能不小心弄错,像这种大批量的重复性工作就需要写脚本来帮助我们完成了。

TinyPng&Shell

我们先来介绍我们今天的主角TinyPng,我相信许多开发人员都知道这个网站,TinyPng 凭借着优秀的压缩效率和压缩质量备受好评。同时它也提供了相应的 API 供我们使用,这也是为什么要使用它的原因。

不过 TinyPng 也有一个限制,单个账号每月最多压缩 500 张次图片,想要提高相应压缩数量需要付费,这也对脚本的批量压缩造成了一些限制,后面会做相应介绍。

shell 脚本就不过多的进行介绍了,网上的教程有很多,本文只会针对比较特殊的地方进行介绍。

实现思路

基本思路是从给定的文件夹下进行遍历查找,如果是图片,进行压缩,将压缩之后的图片下载进行替换,如果是文件夹的话则进入该文件夹下进行更深一层的遍历查找压缩。具体的可以查看脚本,代码如下:

阅读全文 »

JSPatch的一些坑

发表于 2017-02-08 | 更新于: 2026-05-11

最近使用 JSPatch 遇到了一些坑,发出来大家引以为鉴少走弯路吧,后续遇到问题的话会持续更新的。

2017.02.08 更新

1.一些无法直接调用的常量应该怎么写,特别是系统定义的?

使用 NSLog 将对应常量值输出,直接使用输出的常量值替代

2.在 JS 当中发现不能调用方法,导致 JS 文件执行中断,使用 console.log 输出,发现为[NSObject object]

这种情况说明当前对象没有序列化,需转换成 JS 对象使用,调用 toJS()即可

1
var temp = registrationID.toJS();

更多问题详见 JSPatch 官方文档,JSPatch 基础用法,JSPatch 常见问题

移除SourceTree无用远程分支

发表于 2017-02-06 | 更新于: 2026-05-11

在开发过程中我们很多时候都需要将当前分支推送到远程仓库,该分支完成其使命之后再将其删除。

使用 SourceTree 的同学可能会发现 SourceTree 追踪的远端分支越来越多,许多已经删除的分支也还在,即使从 origin 拉取也不行。

20170206-1

虽然这些不影响正常的使用,但想快速的找到一个分支还是有点麻烦的,于是我们决定清除它们。

解决方法 1

  1. 进入对应目录下,使用 git remote show origin 命令查看本地仓库追踪远程仓库的状态

    20170206-2

  2. 使用 git remote prune origin 清除所有失效的远程分支或根据提示删除特定失效分支

  3. 重启 SourceTree 即可。

解决方法 2

点击 SourceTree 操作界面上的“抓取”按钮,并在弹出的弹框上勾选“删掉在所有远端都已经不存在的跟踪(tracking)分支”,点击“确定”即可

2016年个人总结

发表于 2017-01-22 | 更新于: 2026-05-11

20170122-1
一转眼马上要过春节了,趁着这个时候我也发个 2016 年的总结吧,给今年划上一个圆满的句号。

阅读全文 »

oh my zsh & 语义化版本

发表于 2017-01-13 | 更新于: 2026-05-11

最近断断续续忙了一个多月,终于有空坐下来总结一下,写点东西。下面就简单介绍下自己最近遇到的两个坑。

oh my zsh

oh my zsh,为什么要介绍这个呢?起因是在开发过程中,为了修改一个线上 bug,需要切换到其他分支,我就 git stash 暂存了一下当前未提交的代码。当我修改完 bug 回到当前分支时,咦,我暂存的代码呢?后来发现是不小心命令敲错了,请允许我做一个悲伤的表情。

后来同事就给我推荐了 oh my zsh,有 git 命令补全等强大功能,很好用。

zsh 和 oh my zsh

zsh 是一个功能强大的 shell 命令解释器,和默认的 bash 类似,配置较为繁琐,所以用的人也不多。

oh my zsh 是国外一个程序员开发出的帮助你快速上手使用 zsh 的项目,可以让你轻松使用 zsh。

阅读全文 »

iOS粒子特效

发表于 2016-11-14 | 更新于: 2026-05-11

最早接触这个概念是在去年的圣诞节的时候,那个时候手机淘宝首页出了一个页面下雪的动画,当时觉得蛮炫酷的,而且以为实现起来蛮难的,后来自己查了资料才知道“粒子特效”这个概念,今天就来简单聊聊它吧。

粒子特效

粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的游戏图形。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。

以上定义来自维基百科,详细的解释点击这里.

在 iOS 系统当中的实现

粒子特效由两个部分组成,一个是发射器,主要负责粒子的生成和发射,另一个是粒子单元,用于描述粒子的状态。在 iOS 系统当中这两部分分别由 CAEmitterLayer(发射器)和 CAEmitterCell(组成)。

阅读全文 »

iOS滚动视图下压上移全解析

发表于 2016-10-24 | 更新于: 2026-05-11

最近在项目开发过程中遇到了 iOS8 下 UITableView 莫名向上或向下偏移 64 个像素的问题,有经验的人就会知道这是 iOS7 之后导航栏默认透明造成的,然而不仅仅是这样,下面我们就来一起探讨下这个问题。

影响视图偏移的属性

translucent(UINavigationBar)

导航栏的是否透明,iOS7 之后默认为 YES,当 translucent 为 YES(导航栏透明)时,滚动视图位置正常,当 translucent 为 NO(导航栏不透明)时,滚动视图位置下移 64 个像素。

automaticallyAdjustsScrollViewInsets(UIViewController)

该属性仅在 translucent 为 YES 时有效,意为是否自动调整滚动视图内容偏移,默认是 YES,当 automaticallyAdjustsScrollViewInsets 为 YES 时自动将滚动视图内容下压 64 个像素,当 automaticallyAdjustsScrollViewInsets 为 NO 时则不下压滚动视图内容

extendedLayoutIncludesOpaqueBars(UIViewController)

该属性仅在 translucent 为 NO 时有效,意为在不透明导航栏情况下扩展布局,默认是 NO,当 extendedLayoutIncludesOpaqueBars 为 YES 时,滚动视图忽略不透明导航栏,滚动视图位置正常,滚动视图内容下移 64 个像素,当 extendedLayoutIncludesOpaqueBars 为 NO 时,滚动视图不忽略导航栏的不透明,滚动视图位置下移 64 个像素,滚动视图内容正常(如果忽略背景的话,滚动视图内容的位置是一样的,但是实际上布局是不一样的,需注意)

阅读全文 »

教你获取图片的尺寸和文件大小

发表于 2016-09-22 | 更新于: 2026-05-11

有些时候我们会有这样的一些需求:需要获得一张图片的具体尺寸和所占的存储空间,这张图片可能来自网络、本地,也可能是在内存当中的 UIImage 对象。

基本思路:图片文件的本质是一些二进制数据,他们按照一定的规则存储在磁盘或内存当中,我们只需要在相应的位置取出我们需要的数据即可。不同格式的图片存储方式不同,数据所在的位置也不同,所幸的是前人已经帮我们做好了封装,我们只需要调用相关 API 即可。针对图片文件的大小,我们还可以通过计算数据的长度的方式来计算。

阅读全文 »

H5与原生交互的两种方式

发表于 2016-07-29 | 更新于: 2026-05-11

之前做过一些 H5 和 iOS 原生交互的相关工作,在这里做下总结。

H5 和 iOS 原生交互现在主流的有两种方式:

  1. 通过 Webview 拦截 url 请求和 Webview 的执行 js 方法来实现
  2. 通过 JavaScriptCore 来实现

目前用的比较多的方式是第一种,一方面是因为 JavaScriptCore 是 iOS7 之后才出现的,另一方面也因为 WebViewJavascriptBridge 这个框架,它是采用第一种方式实现的,而且封装的也比较好。

阅读全文 »

从Octopress迁移到Hexo

发表于 2016-07-21 | 更新于: 2026-05-12

之前看到有挺多人弃用 Octopress 投奔了 Hexo,刚好赶上前段时间稍微宽松点,就自己搭建了下试试。

以下是自己的几点使用感受:

  1. generate 生成的速度确实是蛮快的
  2. 相关命令使用比较顺手
  3. 文件结构比较合理
  4. 从 Octopress 迁移成本小

所以我就把自己的博客也迁移到了 Hexo。

阅读全文 »
1…4567
树海

树海

61 日志
1 分类
21 标签
RSS
GitHub Weibo
© 2026 树海
由 Hexo 强力驱动
|
主题 — NexT.Muse