使用Java对图片进行裁剪,裁减后出现偏色现象。

关键词:
Java 图片 照片 裁剪 剪切 缩放 偏色 失真 变形

先上结论:
对原始图片进行裁剪操作,一切正常。对上传后的文件进行裁剪,出现偏色现象。调节各种裁剪参数,更换多种裁剪方式,均不奏效。
最后发现,原始图片和上传后的图片,虽然直接打开后视觉效果表现一致,但文件大小变小了。进一步检查发现,图片中的大部分EXIF信息丢失,只剩下最基本的信息。
在上传图片的过程中,使用了集团封装的类库,对文件内容进行安全过滤。我们并不清楚过滤的具体细节,结果由于过度信任而浪费了大量时间。
猜测java的图形处理类库,需要依赖较多的EXIF信息,对此种文件兼容性较差。由于时间原因,未深入探寻。如以后找到更多信息,再回来进行补充。

再来吐槽:
百度和google了很久,相关信息很少,stackoverflow中也没找到相关问题。只找到很久之前两个没有答案的问题,也不知道这两位题主最后有没有找到解决方案。
http://www.oschina.net/question/190011_85557
http://zhidao.baidu.com/link?url=-1-_iQBsBuLzeuadYWGNXjVuQUIXqc4P07veaTKoJHDytJmmbhqE5a6pb108Bn2HBY6F7IjOjJ-5JLQgsiaHsshA4oNNKJZbq4M5w1hRH-i

最后看图:
原始图片
原图
原始图片EXIF信息
原图_EXIF
安全过滤后图片
新图
安全过滤后图片的EXIF信息
新图_EXIF
裁剪后偏色图片
小图
裁剪后偏色图片的EXIF信息
小图_EXIF

windows下nodejs中node_modules嵌套,造成路径过长File Path is Too Long

一直都知道,windows下文件路径有260字符长度限制,可以通过调用Unicode版的Windows API函数来绕过限制。但是一直没有当回事,因为几乎没有遇到过类似问题。但自从接触前端,使用nodejs开发后,却总是遇到这个问题。
今天更是窝火,项目中的依赖性,嵌套了N层node_modules文件夹。真不知道npm的开发人员是怎么想的,难道他们之前从来没有在windows下开发过吗?即便不考虑windows下的路径长度限制,单单是这种无限层次的依赖嵌套,就多么浪费空间和性能。
好在开发人员现在也意识到了这个问题,在npm3中将尽可能把依赖性放置于一级node_modules中,尽可能避免嵌套过深。不过在官网下载的node 4.2.1仍然自带npm 2.14.7,需要我们自行升级为npm 3.3.10,升级方式参考下面的链接。

Flat, flat, flat!
https://github.com/npm/npm/releases/tag/v3.0.0

Upgrading on Windows
https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows

Path too long! 关于Windows 最多260字符文件路径限制
https://www.mgenware.com/blog/?p=2769

How to deploy Node.js application with deep node_modules structure on Windows?
http://stackoverflow.com/questions/13318364/how-to-deploy-node-js-application-with-deep-node-modules-structure-on-windows

Error: File Path is Too Long
http://stackoverflow.com/questions/12204186/error-file-path-is-too-long

Long Paths in .NET, Part 1 of 3 [Kim Hamilton]
http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx
Long Paths in .NET, Part 2 of 3: Long Path Workarounds [Kim Hamilton]
http://blogs.msdn.com/b/bclteam/archive/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton.aspx
Long Paths in .NET, Part 3 of 3 Redux [Kim Hamilton]
http://blogs.msdn.com/b/bclteam/archive/2008/07/07/long-paths-in-net-part-3-of-3-redux-kim-hamilton.aspx

Naming Files, Paths, and Namespaces
https://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Windows长路径文件删除工具
http://download.csdn.net/detail/netplaier/5073907

无法删除 NTFS 盘上的文件或文件夹
https://support.microsoft.com/zh-cn/kb/320081

使用pdf.js在线浏览pdf文件

不用转换为flash,不依赖于本地插件,纯粹基于html5,支持IE9+及其它现代浏览器。

PDF.js官网
http://mozilla.github.io/pdf.js/
Github仓储
https://github.com/mozilla/pdf.js
常见问题解答
https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions
Viewer参数
https://github.com/mozilla/pdf.js/wiki/Viewer-options
API文档
http://mozilla.github.io/pdf.js/api/draft/index.html
api.js源码
https://github.com/mozilla/pdf.js/blob/master/src/display/api.js
调试pdf.js
https://github.com/mozilla/pdf.js/wiki/Debugging-PDF.js
更多学习资源
https://github.com/mozilla/pdf.js/wiki/Additional-Learning-Resources

归乡一瞥

农村空心化
少年外出求学,青年和中年在外打工,只剩留守儿童和老人。
缺少劳力造成土地荒废,粮食产量降低。相关产业衰萎,进而从业人员外流。经济作物和副食生产,不能自给自足,依赖外部供应,价位波动影响加剧。
农村近无新建房屋,宅基地名存实亡。青年定居城镇,推动城镇房价上涨。举数辈之力,安于楼宇之中,往昔庭院野草没人。
平日人烟稀少,交通运输萎靡。节假日人员暴增,运力不足,归途不畅。

互联网渗透
往年回家,几乎等同于断网。无宽带接入,无3/4G覆盖。如今回家,门前有联通和移动宽带接入,大部分地区已有3/4G覆盖。两家宽带运营商的竞争,避免了垄断局面,宽带质量甚至好于城市部分小区。
往年,主要的资讯获取途径就是电视,价值观积极正面,对留守老人起到很大的安慰作用,但也同时磨灭了留存的抗争精神,变得逆来顺受。如今,信息来源多样化,一片祥和的局面被戳破,事实夹杂着流言扑面而来,老人们还没有做好准备就被淹没在信息的海洋中。
就像还没成年的孩子对于社会是无知的,老人对于互联网也是未知的。需要我们对老人进行引导,辨别网络中的虚假信息。

资讯娱乐
同部分网瘾少年一样,无聊和空虚,是老人主动接触互联网的一大动机。无人陪伴的他们,需要一个释放的途径。
娱乐从电视时代的被动接受,变为网络时代的主动获取。资讯和电视剧是主要的获取目标。近乎实时的资讯传播,是串门的一大谈资。
随意回播和数量宏大的剧集,是消磨时间的一大利器。可是,抗日神剧可观的观看次数,提醒着我们,垃圾信息仍充斥在我们周围。

物流延伸
借电商蓬勃发展的东风,民营快递网点已延伸至乡镇级。虽比不上城市中送货上门,但也打破了邮政只此一家的局面。
电商催生民营快递,快递又反哺电商,便利的收货条件更加促进了网购的普及。
不过,凡是涉及到“钱”,老人立马没有了开放的心态,认为还是看的见的钞票才最安心。这个可以理解,毕竟网络中充满各种陷阱,我们稍不留神就误入其中,更何况触网不久的老人。

O2O前奏
线上缴费已经司空见惯,享受到便捷的我们自然尝试推动农村中的各项事物线上化。在此期间,观察到一些与城市不同的现象。
城市线上化的过程,是通过隔离买卖双方之间的直接接触,将两个陌生人的线下交易转移至线上。该套路在城市中并无不妥,因为城市本身就是一个陌生人社会,交易过程一般只是纯粹的资金流动,从线下到线上的过程并未改变现有的人际关系。
农村则有所不同,在村镇级别上,是一个熟人社会。商业交易是建立在口碑和信誉的基础上,通过口口相传的方式传播和巩固。同时,交易往往伴随着资讯交流和社交性质,甚至不需要资金参与流通。城市的线上化过程,并不直接适用于农村,需要因地制宜。