Mac 用 png 图片压缩应用 您所在的位置:网站首页 压缩png图片的应用 Mac 用 png 图片压缩应用

Mac 用 png 图片压缩应用

2023-08-22 02:10| 来源: 网络整理| 查看: 265

TinyPNG是一个专注png图片压缩的网站,平均压缩比例能达到70%,同时对于图片质量的损失几乎为0。对于Web应用,能减少加载时间,对于移动App,能大大降低应用体积和内存消耗。非常推荐使用。

TinyPNG4Mac,这第一款Mac应用,也就是TinyPNG服务的Mac客户端。它可以方便的让你不需要打开浏览器就可以批量压缩png图片,只需要拖拽图片到界面上。现已开源到Github:TinyPNG4Mac 下载链接:TinyPNG4Mac

它长这个样子:

preview

界面跟简单,左边是操作区域,右边是任务列表。

使用方法 到TinyPNG申请一个秘钥,不要被吓到,只需要填个邮箱和用户名即可,秘钥会自动发到邮箱。 将秘钥复制到界面左上角的输入框里,点submit。(以后就不需要输入了) 将需要压缩的文件拖拽到左边中间区域。 客户端会自动将压缩完成的图片下载到桌面/tinypng_output目录。

除了第一步比较麻烦,整个流畅还是蛮简单的。右边的列表会跟踪每张图片的进度。完成之后会有一个Show按钮显示,点击会打开输出文件夹,方便拷贝和使用。

因为TinyPNG压缩图片也是需要资源的,每个用户每个月只能免费压缩500张图片,有更多需求的话可以绑定信用卡,自动扣费。不过这个现实对于大多数同学还是足够了。

注意

因为Mac系统有安全限制,如果系统提示不能打开,请到设置 -> 安全性与隐私勾选全部来源,启动一次之后可以再把这个选项关闭。出于安全考虑,我也建议你这么做。

原理分析

项目的逻辑比较简单:

接收输入的文件 创建并储存任务列表 将任务加入队列,取任务并执行 上传文件,并接收结果 下载压缩后的文件并保存到本地文件 根据进度随时更新列表 循环从队列中取任务直到全部完成

库方面,使用了两个第三方库:

Alamofire:Swift版的AFNetworking。 SwiftyJSON:JSON解析,很好用,比JSONModel舒服很多。 项目结构:

struct

麻雀虽小还是五脏俱全的,哈哈。

界面通过StoryBoard实现,截图里没有涉及。 一个Model用来描述任务,同时里面定义了状态枚举。 tpclient组下面封装了核心逻辑,存储、队列和执行器,执行的时候通过Notification同时界面更新。 views包含一个实现拖拽逻辑的View,使用delegate将结果传递给ViewController;和一个TableCell封装,处理Cell的显示 utils就是工具类了,字符串格式化、文件操作、配置操作。

逻辑简单,而且第一次写swift,所以就不献丑贴代码了,感兴趣的同学可以去Github上下载源码。

总结&感受

对于swift,写起来还是有一丢丢不习惯。我是在年初的时候看了一遍swift的文档,对一些基本的概念有一些了解,另外Java和OC都比较熟悉,再加上Cocoa开发和iOS很多相似的地方(Cocoa才是元老好么……),所以语言上的阻力并不大。只是在语法上有一点不适应感。

Cocoa,资料太少了,而且太老了,基本都是几年前的。可见最近几年移动端的发展速度真是碾压桌面端。没做过,所以就各种Google,好在做的东西不难,所以还算是顺利吧。

结构设计上,这个场景应该算常见,就是任务处理。当我想到任务处理的时候,自然而然想到了任务队列,估计是之前看源码之类留下的印象,可见多看源码多学习是有好处的,不仅能有鱼吃,还有渔可得。得到了就是自己的,不需要怎么想就蹦出来了。实现上可能还有欠缺,欢迎各种建议。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有