上次跟朋友一起出去玩,拍的照片居然不知道怎么的有很多是 CR2 格式的。这个是佳能(Canon)开发的相机 RAW 文件的一种存档格式。RAW 文件包含了原图片文件在传感器产生后,进入照相机图像处理器之前的一切照片信息。但是这种文件格式很大(像我这里每张照片二十多兆),而且这些额外的信息对我意义不大,所以想批量转换成普通的 JPG 文件来保存。另外,如果不安装软件,Windows 系统都没法查看这些照片。

Linux 上有很多开源工具可以进行 CR2 到 JPG 格式的转换。其中比较出名的有个 UFRaw 工具。它还包含了一个命令行的批处理工具 ufraw-batch。UFRaw 带了很多 RAW 格式图片处理的参数,比如修正镜头带来的失真等等。想深入了解的可以参考网友翻译的 UFRaw 指南。

安装 ufraw

我用的是 openSUSE Tumbleweed 系统,默认并没有安装这个工具。但是官方源中就有,所以安装起来也很方便,

$ sudo zypper install ufraw

用 ufraw-batch 处理单张照片

使用 ufraw-batch 进行 CR2 到 jpg 转换的常用格式为,

$ ufraw-batch IMG_2989.CR2 --out-type=jpeg --output IMG_2989.jpg

这样就将 IMG_2989.CR2 转换成了 JPEG 格式的 IMG_2989.jpg。

默认情况下,ufraw-batch 会自动应用一些常规的处理,比如进行镜头失真矫正。矫正之后的图片可能会在四条边的中间部位出现黑边。这是因为矫正之后图像往中间缩小了一点点。

要自动裁切掉这些黑边,可以在上面的指令中加入 --auto-crop 参数,变成,

$ ufraw-batch IMG_2989.CR2 --out-type=jpeg --output IMG_2989.jpg --auto-crop

用 ufraw-batch 批量处理一个文件夹中的所有 CR2 照片

批处理的方式很简单。假设在路径 /home/me/my_cr2 下面存放着这些照片,我们可以先切换到这个目录下,新建一个保存转换后文件的文件夹 /home/me/cr2/my_jpg,然后再进行批量转换。

$ cd /home/me/my_cr2

$ mkdir jpg

$ ufraw-batch *.CR2 --out-type=jpeg --out-path=my_jpg --auto-crop

上面最后一条指令本来应该逐个转换该文件夹中所有的 CR2 文件的,但是因为当前 UFRaw 存在的一个问题,会导致转换一个文件后就崩溃,从而无法完成全部转换。

一个临时的解决方案是使用 Bash 的 for 循环来每个文件调用一次 ufraw-batch。上面第三条指令变成,

$ for i in *.CR2 ; do ufraw-batch $i --out-type=jpeg --out-path=my_jpg --auto-crop ; done

这是写成一行的写法。分行写就是,

for i in *.CR2

do

ufraw-batch $i --out-type=jpeg --out-path=my_jpg --auto-crop

done

后记

图形界面的批处理软件应该也是有的,不过我还是决定命令行挺好用的,也方便同时做一些别的更改。

在佳能的网站上还看到了用于苹果系统的转换工具 CR2 Converter。

Windows 下可以先安装 GIMP(一个开源的、与 PhotoShop 类似的软件)再安装 UFRaw(参考这里)。©

linux保存为jpg格式的文件,Linux 系统转换 CR2 格式原生照片为 JPEG 格式相关推荐

  1. linux保存mp4格式的文件,Linux中利用ffmpeg转换手机支持的mp4格式视频文件

    首先当然是需要安装ffmpeg软件包,可以直接从源中进行安装!但我安装后并不能成功执行后面所需要执行的转换命令,所以我只能重新从源码编译安装ffmpeg: (1)下载ffmpeg源码包,注意版本不能太 ...

  2. linux怎么在目录下查找文件,linux find-在指定目录下查找文件

    find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子目录和文件全部进 ...

  3. linux怎么压缩后保留原文件,Linux 实现压缩保留源文件的方法

    linux下gzip的压缩详解 Linux压缩保留源文件的方法: gzip ?c filename > filename.gz Linux解压缩保留源文件的方法: gunzip ?c filen ...

  4. linux 使用gzip压缩打包的文件,linux常用的解压,压缩,打包

    gzip zcat [root@linux ~]# gzip [-cdt#] 文件名 [root@linux ~]# zcat 文件名.gz 参数: -c : 将压缩的数据输出到屏幕上,可通过数据流重 ...

  5. linux用u盘上传文件,linux如何挂载U盘和文件系统(或需要用到).doc

    linux如何挂载U盘和文件系统(或需要用到) 侯狞朔曙据旺顿比属两厩柔办伙鞍靡钢旺家吾琳冤筏哩自蚊械榴革煮疹谐兜拓舀串寸翼醚名镜咽阔听掉屯启挖弯正火个纶恭节锯健腻茁膝溺曼捷嵌肮抽切市佐朱臆梢钮嫡竣陕 ...

  6. linux桌面怎么解压tar文件,linux安装tar文件,linux怎么解压targz

    这几年随着XP系统的退役,国产操作系统逐渐的成为了电脑的热点话题,基于linux内核的国产操作系统是否能够被大众接受是一个至关重要的问题,那么linux的基本操作中,linux(Ubuntu)如何安装 ...

  7. linux服务器监控谁改了文件,linux服务器文件监控

    linux服务器文件监控 内容精选 换一换 为了防止您的主机被勒索病毒侵害,请创建防护策略,将重点防御的文件添加到防护策略的监控路径中,并启动机器学习.机器学习会自动聚类并收集该策略下的所有服务器的正 ...

  8. 两台linux电脑在互联网内传输文件,linux网络编程之实现跨平台PC之间进行文件传输...

    //实现两台计算机进行文件传输,包括跨平台传输即linux与windows之间 //TCP的文件传输 //文件大小不限制,需要做到将大文件分包去做 server.c //服务端程序 int main( ...

  9. linux如何用rz上传文件,Linux使用rz命令上传文件

    Persistent Data Structures 原文链接:http://www.codeproject.com/Articles/9680/Persistent-Data-Structures ...

最新文章

  1. C语言位操作--判断整数是否为2的幂
  2. 无意看到,当真给力!记住:永远不要在MySQL中使用UTF-8
  3. php7 memcached sasl,Mac安装memcached扩展支持sasl
  4. python面试1000题之4-6
  5. 如何选择行业,让选择大于努力
  6. Mac 麦克风不工作?6 种修复方法
  7. 新手请教个问题,有关cocos2d-x
  8. 【iVX从入门到精通 · 开篇】初始iVX——零代码的可视化编程语言
  9. 财务常用软件哪个好用?
  10. php hprose扩展1.5.5,基于Hprose for PHP 1.5.6、Yii2.0.7的RPC的基本实现流程
  11. 大陆港澳台身份证正则验证
  12. WiFi产品抗干扰设计
  13. win10桌面右下角网络图标中找不到网络
  14. unity无光照着色器(顶点片元着色器)使用TAA抗锯齿后角色移动时模糊(虚影)解决方案
  15. 在线阅读Linux内核源代码
  16. 汉明码(海明码)计算,模板套用易懂!
  17. Cisco VPP(1) 简介
  18. 专题:预测大盘20190410
  19. 外贸电子商务网站的网络广告推广方案
  20. Rust学习笔记(14)——struct、Option和Box组合应用实现单向链表之二

热门文章

  1. matlab最炫名族风,matlab版 “最炫民族风” --- 跟风之作(附音频效果)(转)
  2. 《魔兽世界》最大私服上线:玩家被国内工作室广告刷吐了
  3. datawhale课程《transformers入门》笔记6:文本分类、超参搜索
  4. Python程序设计基础(第2版)by董付国 习题答案
  5. HDU1718--Rank
  6. SQL提高查询效率知识拾忆
  7. 网络攻防实验之缓冲区溢出攻击
  8. 彻底扒光 通过智能路由器拆解看其本质
  9. “隐私—数据收集”问题的两难分析
  10. diary_mna_2016