BatchPhoto 介绍 - Mac图片浏览/批量/导出

版权所有, 转载请著明出处,保留链接。

BatchPhoto 简介

BatchPhoto是一个兼具图片浏览和图片批量操作的工具。以文件夹的形式组织浏览图片,支持按时间和地理位置分类图片;批量地对图片进行操作,包括改变尺寸、旋转,添加文字、图标,清除GPS信息等,支持把对图片的批量操作保存成模版;可直接导出图片到云端,并生成Markdown链接,进行分享、写作应用等。

支持JPEG、JPEG2000、TIFF、BMP、PNG图片格式。

浏览

  1. 以文件夹的形式对图片进行树状层级式的管理;
  2. 以时间、地理、默认的方式展示和浏览图片;
  3. 支持按文件名、文件扩展名搜索图片;
  4. 平滑、迅速地改变图片缩略图的大小,随心预览;
  5. 支持查看图片的详细信息,包括相机、GPS、EXIF等信息;
  6. 支持对图片进行放大、缩小查看,并支持一键原图、自适应、铺满窗口查看;
  7. 支持多图同屏浏览,浏览的图片大小可调节,多图布局适应窗口;
  8. 方便的鼠标操作浏览,在图库中,鼠标单击选中图片,双击进入下一层级,或者进入单图查看;在单图查看中,鼠标左右滑动,浏览上一张、下一张图片,鼠标双击,返回当前层级图库;
  9. 丰富的键盘快捷键操作浏览,在图库中,键盘方向左右键,选择需要浏览的单图或文件夹,Enter键进入下一层级,或者进入单图查看;在单图查看中,键盘方向左右键,浏览上一张、下一张图片,键盘方向上下键,放大或缩小图片,ESC键,返回当前层级图库;
  10. 支持拖拽临时查看图片,当把包含图片的文件夹、图片拖拽到图库窗口、单图查看窗口时,即可浏览文件夹中的图片或者拖拽的图片;

操作

  1. 支持改变图片的大小,并可以以固定长宽、比率缩放的形式批量的应用于其他图片;
  2. 支持对图片进行旋转、翻转,并可批量地应用于其他图片;
  3. 支持对图片的属性进行修改,例如GPS、拍摄时间、相机型号、曝光时间等属性,并可将修改批量地应用于其他图片;
  4. 支持添加文字标签水印,并支持设置文字的内容、颜色、大小、旋转角度、样式(单体/平铺)、位置等, 并可以批量的应用于其他图片;
  5. 支持添加图标标签水印,并支持设置图标的所在的位置、旋转角度、样式(单体/平铺)等,并可批量的应用于其他图片;
  6. 所有对图片的批量操作,都是所见即所得,即应用批量操作后,可马上查看图片状况,如果不满意,也可撤销批量操作;
  7. 所有对图片的操作,包括图片大小、旋转、翻转、属性修改,文字、图标标签水印,都可以保存成模版,以便应用在其他图片上;
  8. 支持对图片操作模版的管理,包括查看、修改、删除、增加,并可在偏好设置中设置默认应用的模版;
  9. 支持多图同屏操作,即在一个窗口中,显示多张图片,同时可对该多张图片进行操作;

导出

  1. 支持导出图片成JPEG、PNG、JPEG200、BMP、TIFF格式;
  2. 支持导出到Imgur, Flickr云端的指定账户,账户在偏好设置中添加;
  3. 支持设置默认导出参数,生成Markdown格式链接;在偏好设置中设置默认导出参数,包括导出的云端账户,图片格式,应用的模版,例如添加文字或者图标水印,去除EXIF信息等,然后拖拽包含图片的文件夹、图片到状态栏的BatchPhoto应用程序图标上,进行导出批量处理,完成后,会在剪贴板中自动生成Markdown链接。
  4. 支持在任意地方复制图片,或者调用系统服务的形式进行默认导出;
  5. 支持对导出历史进行管理,包括查看,清除,复制MarkDown链接等;
  6. 对于JPG格式的图片,导出前,可设置压缩比率;

其他

  1. 支持分享图片到Facebook, Flickr, Twitter等,通过Mac系统支持的分享服务;
  2. 支持通过邮件分享图片给家人和朋友;
  3. 支持开机自启动BatchPhoto;Command-O 打开浏览图片面板,Command-P 打开偏好设置;并可在偏好设置中设置弹出状态栏菜单、导出剪切板、编辑剪切板中对象的快捷键;

结语

如喜欢BatchPhoto,请在App Store留下评论,或者,也可将建议反馈通过邮件发送到[email protected]

截图

screen_s_0
screen_s_1
screen_s_2
screen_s_3
screen_s_4

V字 - 阅读模式介绍

版权所有, 转载请著明出处,保留链接。

感概

金秋九月,天气凉爽,家人团聚,甚是惬意,奈何工作烦蹉,闲话少叙….

阅读模式

V字 - v2ex社区第三方客户端,在设计之初时,就考虑了用户多种阅读品味,有的喜欢简洁宁静, 有的喜爱轻奢富丽,所谓萝卜白菜,各有所爱,都有考虑之。进入V字的个人 -> 设置, 可以看到列表样式、单元样式、字体与显示,这三个选项的设置可以影响到阅读模式,如下所示:

设置

  1. 列表样式
    进入列表样式选项,可以选择纯白斑马间隔三种列表样式,如下所示是三种列表样式的效果:

纯白
斑马
间隔

  1. 单元样式
    进入单元样式选项,可以选择平铺直叙紧凑节制两种单元样式,如下所示是两种单元样式的效果:

平铺直叙
紧凑节制

  1. 字体与显示
    进入字体与显示,除了可以调节字体大小行距外,还可以设置是否隐藏头像,如下所示是隐藏头像的效果:

    隐藏头像

当然,列表样式、单元样式、字体与显示中的设置,可以相互组合,形成自己喜爱的阅读模式,如下三种阅读模式就是组合出来的。

阅读模式-1
阅读模式-2
阅读模式-3

横看成林侧成峰,远近高低各不同;众里寻他千百度,蓦然回首,那人却在、灯火阑珊处。希望总有一种阅读模式,你喜欢。

嘿嘿,我也写了一篇软文,欢迎下载试用,附上下载地址:

https://itunes.apple.com/cn/app/v%E5%AD%97/id1234223461?l=en&mt=8

更新

V字刚更新到v1.3,增加了对1password的支持。V字的完整介绍请移步V字之始查看。

UpVideo介绍

版权所有, 转载请著明出处, 保留链接。

UpVideo

logo
UpVideo, 即Upload Video, 意思上传视频文件。

下载

https://itunes.apple.com/cn/app/v%E5%AD%97/id1234223461?l=en&mt=8

产品初衷

UpVedio的初衷是,做一款APP,上传视频到各大平台,例如YouTube,优酷等。为什么需要做个APP,而不是通过WEB上传视频呢,因为视频文件大多数比较大,如果通过网页上传,一是,可能由于网络环境的差异,经常地失败,并且如果关闭上传页面的话,就相当于取消上传,下次又需要重新这样操作一遍;二是,对于有多个视频文件需要批量上传的时候,网页就显得有些捉襟见肘了,而且管理上传任务也极其不方便。遂决定做个桌面的APP,方便这些工作。

基本功能

  1. 简洁的界面设计;
  2. 上传参数设置;
  3. 完善的上传任务管理;
  4. 支持多账户;

界面预览

design
parameter
task
account

结语

目前UpVedio, 还只支持YouTube, 后续会陆续添加其他平台的支持。在这里吐槽下,本来是先做优酷的,奈何优酷的用户授权API总是调用失败,才转到YouTube的,感叹下 API设计、文档规范还是存在很大的差距的。

V字之始 - v2ex 社区第三客户端

版权所有, 转载请著明出处,保留链接。

V字

LOGO

V字之名,包括LOGO设计之意,都源于多年前看过的一部电影《V字仇杀队》,向它致敬!

下载

https://itunes.apple.com/cn/app/v%E5%AD%97/id1234223461?l=en&mt=8

简介

V字V2EX的一个非官方iOS客户端,关于V2EX,请查看https://www.v2ex.com.

基本功能

  1. 浏览各主题列表、主题内容、评论、节点、用户;
  2. 收藏主题,节点;感谢发题者,评论者;
  3. 回复主题,发表主题;
  4. 关注,Block用户;
  5. 搜索主题,节点,主题搜索结果来自于Bing;
  6. 未读消息提醒;
  7. 浏览发表过的主题,回复,收藏的节点、主题,关注的人发表过的主题;

特色功能

  1. 多账户;
  2. 夜间阅读模式;
  3. 非WIFI无图阅读;
  4. 隐藏头像、调节字体大小和行距;
  5. 多种主题列表样式;
  6. 多种主题、回复列表单元样式;

无图无真相

1 2 3 4 5 6 7 8 9 10

开发小叙

V字基于Swift3.0开发,从2017年1月18日第一个提交,到5月中旬基本功能完成,App Store第一个版本发布,时间跨度4个月左右,从提交历史上看,基本上每天都笔耕不辍。接触Swift3.0有段时间,但是用它开发一个完整的APP,还是第一次。给我的感觉是,在表达形式上比Objective-C简练,在抽象上没有Javascript那般灵活多样,但蛮喜爱,似乎找到了第一次写C++代码的感觉,我想我会继续漫游在它的填坑路上,虽然XCode的编译速度慢的令人发指。
为尝鲜,V字一开始是基于React-Native开发,项目源码在https://github.com/kzhiquan/rn-v2ex,但基本功能完成后,在真机上测试,发现还是没有原生的那般细腻,遂放弃,因为V字定位为小众的V2EX非官方客户端,必须要有良好的体验,卓越的性能。

后续开发

  1. 完成自动登录,签到。 目前V字还未支持自动登录,即账户cookie失效后,需要手动点击账户登录; – 已完成
  2. 增加Password支持; – 已完成
  3. 主题内容附言显示;
  4. 本人不是V2EX的重度用户,所以可能存在版面安排不合理,后续会相应的调整;
  5. iPad还没有很好的适配,完善iPad上的适配;
  6. 还没想到的功能;

结语

在此感谢我的家人,为完成V字,牺牲很多相处陪伴的时光。
也欢迎各广大用户,积极提issue和bug,完善V字,希望V字能给你带来完美的阅读体验。

V字 - 阅读模式介绍

V字V2EX 社区的第三方客户端,而V2EX是创意工作者们的社区。这里目前汇聚了超过 110,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX希望能够成为创意工作者们的生活和事业的一部分。

V字客户端搜集信息

V字将来可能会对使用情况进行统计,但这些统计信息不包含您的任何身份识别信息。

法定披露

虽然我们会尽最大努力保护用户隐私,但当我们有理由相信只有公开个人信息才能遵循现行司法程序、 法院指令或其他法律程序或者V字客户端的权利、财产或安全时,我们可能披露个人信息。

安全

我们会采取合理的实际及电子手段以及规程保障措施来保护您的个人信息。 虽然通过因特网信息传输数据并非100% 安全,但我们已经采取并将继续采取商业范畴内合理的努力来确保您的个人信息得到保护。

链接

V2EX社区上可能会提供某些链接,第三方网站不受此隐私策略的约束,V字不对这些网站处理您的个人信息的相关做法进行任何说明。建议您在开始访问这些网站之前查阅其隐私策略,确定其隐私保护惯例。

联系

请将您对您的信息的任何访问请求、信息修改请求或有关此策略的问题发送至以下电子邮件地址:[email protected]。或者,直接在V2EX社区通过发帖或者回复联系社区管理员livid, 例如: @livid, 请求修改、删除相关信息。

感谢

在此,感谢[email protected], v2ex第三方iOS客户端的作者, 此格式文本来自于他的链接: http://www.misaka14.com/

FlyBook——Source Recommended

There are differences in different countries of copyright law for ebooks.FlyBook will abidance by intellecctual property and copyright law, thus will not privide book resources, users can directlly add on when needed. For helping users, below we list down some usual online book Resources for your reference.

##Cloud
Dropbox

##Chinese
子乌书简
书仓
新浪共享[已关闭]
掌上书院
COAY [已关闭]
Kindle人社区
Kindle114

##English
Baen
Gutenberg

##Russian
zone4iPhone.ru

##French
Revues.org
Atramenta
YouScribe

All the book Resources metioned above are all independent third-party website and have no relations with FlyBook. Any questions about these website, please contact the admin directly.

If you have some good, new source to recommend, please leave on comment as follow:

OPDS FORMAT: URL#OPDS NAME, For Example: http://www.baenebooks.com/stanza.aspx#Baen
WEBSITE FORMAT: URL#WEBSITE NAME, For Example: http://dropbox.com#Dropbox

Tip:You can click the link directly to add the source into FlyBook.

Viewer源码阅读心得4——用户交互

版权所有, 转载请著明出处,保留链接。
Viewer源码阅读心得4——用户交互

##用户交互概述
用户交互, 即用户在APP上操作, APP呈现出不同的形态。在Cocoa Touch中, UIView继承自UIResponder, UIViewController也继承于UIResponder,而我们在APP页面上看到的都是UIView, 无论是UIViewController,还是UIView,都能够接受处理交互, 而在页面视图层次结构中, 肯定是点击所在的视图先接受到事件, 再把事件向其控制器传递, 向父视图传递, 直到UIApplication。那么是在哪里处理捕获这个事件, 并对事件进行处理呢?这就需要根据视图的组合, 和数据的所在层次, 做相应的权衡。大体上可分为两种,一种是从上到下, 即父控制器(父视图)接受到事件, 它处理完事件的相关部分,涉及到自身相关的, 再把事件传递给相关的子视图, 即直接调用它的处理函数, 逐层的处理下去;

UIApplication
|------->UIViewController
        |------->UIView
                    |-------->UIViewController
                              |--------->UIView

还有一种是从下到上, 即由子视图或控制器捕获事件, 由它处理完成, 再把该事件传递给父视图或者父控制器,其传递的方式, 父控制器或者父视图往往设置为子视图或者子控制器的委托, 而子视图或者控制器捕获事件时, 直接调用委托协议的方法, 将该交互事件传递上去。

UIApplication
|<-------UIViewController
        |<-------UIView
                    |<--------UIViewController
                              |<---------UIView

Viewer中刚好两种方式都有体现, 在LibraryViewController中的LibraryDirectoryCell, LibraryDocumentsCell,则是从下到上的交互传递;而ReaderViewController中的手势识别的交互处理则展现了从上到下的交互方式。那么在什么情况下, 采用那种方式呢? 这我也没分析出来, 跟视图,数据的层级组合有关, 下面请看Viewer中LibraryViewController,ReaderViewController的详细分析.

Read More

Viewer源码阅读心得5——总结

版权所有, 转载请著明出处,保留链接。
Viewer源码阅读心得5——总结

##架构概括
Viewer 主要分三个模块, 分别是关系数据模型CoreData, 存储模块(thumb图片的获取), UI模块(初始化和用户交互),三个模块分别在前几章都已经详细分析过。一般来说一个APP = 数据 + UI, 存储模块在这里也归为数据的部分,其实其是工具模块。关系数据模型通过类CoreDataManager单例架构CoreData体系, 有对象DocumentFolder和ReaderDocument;存储模块通过类ReaderThumbCache单例作为接口, 其中ReaderThumbRequest是与外界通信的参数。UI模块中主要分两大部分, 一部分是DocumentFolder和ReaderDocument对象的呈现和交互, 是通过LibraryViewController来实现的,还一部分是ReaderDocument, 即PDF文档的阅读, 是通过ReaderViewController控制器来实现的。那么这三者是怎么交互的呢?

    UI模块
    /    \
   /      \
  /        \
存储模块    关系数据模型CoreData

Read More

Viewer 源码阅读心得3——初始化分析

版权所有, 转载请著明出处,保留链接。
Viewer 源码阅读心得3——初始化分析

##初始化概括
初始化分为数据的初始化和UI的初始化,数据的初始化就是构建CoreData体系,这已经在上篇对象存储模型中讨论过,主要通过类CoreDataManager(单例)进行,而UI的初始化是通过一组UIViewController类进行,逐视图层次初始化下去,并在UI初始化的过程中通过CoreData加载DB数据展现在视图上。由此可见,必须先进行数据的初始化,再进行UI视图的初始化。

初始化的嵌入点是ViewerAppDelegate类,是NSApplication的代理类,主要在如下方法中进行,其逻辑过程如下:

- (BOOL)application:(UIApplication *)application :(NSDictionary *)launchOptions
  1. 初始化APP配置参数, 向NSUserDefaults登记APP的默认配置:版本号,隐藏状态栏标志;
  2. 初始化CoreData对象存储模型体系, 如果CoreData中不存在Documents/Recent,则向CoreData中插入;
  3. 如果APP是通过其他APP传递NSURL打开的,则在NSUserDefault删除kReaderSettingsCurrentDocument键的值;
  4. 使用类DirectoryWatcher对文件夹Documents进行监视,如果Documents文件下的文件有变动,则调用委托方法:

    • (void)directoryDidChange:(DirectoryWatcher *)folderWatcher;

      在委托方法中,如果定时器有效, 则使其失效,然后创建一个4.8m的定时器,当时间到时,则调用:

    • (void)watcherTimerFired:(NSTimer *)timer

      在此方法法中,首先使directoryWatcherTimer失效,并置为nil,然后调用DocumentsUpdate单例的queueDocumentsUpdate方,创建一个NSOperation加入队列,异步处理PDF文档有变动.

  5. 最后进行UI的初始化,实例化LibraryViewController,并作为根视图赋值给主窗口;

Read More

Viewer 源码阅读心得2——对象存储模型

版权所有, 转载请著明出处,保留链接。
Viewer 源码阅读心得2

##对象存储模型概括
Viewer 存储模型采用CoreData, 它有两个对象,一个是对文件夹的抽象(DocumentFolder), 另一个是对PDF文件的抽象(ReaderDocument),算是比较简单的, CoreData存储文件上采用了sqlite格式,存储在Library/Application Support/Reader.sqlite。

Viewer处理存储对象模型的类在Core Data文件夹下,Core Data文件夹下有DocumentFolder, ReaderDocument, DocumentsUpdate, CoreDataManager四个类,其中DocumentFolder, ReaderDocument是模型, 它们之间是1对多关系, DocumentsUpdate, CoreDataManager…,其类层次调用关系如下:

DocumentsUpdate
    |
    |
CoreDataManager
    |
    |
DocumentFolder, ReaderDocument

Read More