最近需要处理一批Canon的CR2格式数码相机图片,转成JPEG等格式,发现ubuntu下比Windows要方便多了。先安装如下软件吧:
好了,要转换图片的话,进入目录后请运行如下命令:
convert 命令会自动调用ufraw-batch进行格式转换。当然convert还有更多强大的功能,模糊、锐化等,这里就不讨论了。
exiv2 主要是用于读取图片的metadata:
上面的数据中,可以看到拍摄该相片的是什么设备,以及各类拍摄参数,如曝光时间、光圈大小等。
exiv2有python模块,[url=http://tilloy.net/dev/pyexiv2]python-pyexiv2[/url]
[img]/upload/attachment/117841/3d6c6009-2f5c-37b7-964f-02d5a828888d.png[/img]
[url=http://ufraw.sourceforge.net]ufraw[/url]其实本身也有很多功能,白平衡、灰度、曝光度等调节,非常实用:
[img]/upload/attachment/117813/de8c02fc-fbdf-3903-a3aa-0b5d58e373a9.png[/img]
这里是网上摘抄的一些相关知识:
[b]Exif的标识[/b]
所有的JPEG文件以字符串“0xFFD8”开头,并以字符串“0xFFD9”结束。文件头中有一系列“0xFF??”格式的字符串,称为“标识”,用来标记JPEG文件的信息段。“0xFFD8”表示图像信息开始,“0xFFD9”表示图像信息结束,这两个标识后面没有信息,而其它标识紧跟一些信息字符。
0xFFE0 -- 0xFFEF之间的标识符称为“应用标记”,没有被常规JPEG文件利用,Exif正是利用这些信息串记录拍摄信息如快门速度、光圈值等,甚至可以包括全球定位信息。按照Exif2.1标准对这些标识符的定义,数码相机可以把各种拍摄信息记入数码图像中,应用软件可以读取这些数据,再按照Exif2.1标准,检索出它们的具体含义,一般而言包括以下一些信息:
Image Description 图像描述、来源. 指生成图像的工具
Artist作者 有些相机可以输入使用者的名字
Make 生产者 指产品生产厂家
Model 型号 指设备型号
Orientation方向 有的相机支持,有的不支持
XResolution/YResolution X/Y方向分辨率 本栏目已有专门条目解释此问题。
ResolutionUnit分辨率单位 一般为PPI
Software软件 显示固件Firmware版本
DateTime日期和时间
YCbCrPositioning 色相定位
ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。
ExposureTime 曝光时间 即快门速度
FNumber光圈系数
ExposureProgram曝光程序 指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。
ISO speed ratings感光度
ExifVersionExif版本
DateTimeOriginal创建时间
DateTimeDigitized数字化时间
ComponentsConfiguration图像构造(多指色彩组合方案)
CompressedBitsPerPixel(BPP)压缩时每像素色彩位 指压缩程度
ExposureBiasValue曝光补偿。
MaxApertureValue最大光圈
MeteringMode测光方式, 平均式测光、中央重点测光、点测光等。
Lightsource光源 指白平衡设置
Flash是否使用闪光灯。
FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录
FlashPixVersionFlashPix版本 (个别机型支持)
ColorSpace色域、色彩空间
ExifImageWidth(Pixel X Dimension)图像宽度 指横向像素数
ExifImageLength(Pixel Y Dimension)图像高度 指纵向像素数
Interoperability IFD通用性扩展项定义指针 和TIFF文件相关,具体含义不详
FileSource源文件
Compression压缩比。
sudo apt-get install imagemagick # 包含convert命令
sudo apt-get install ufraw # 就是我们需要的“幽浮Raw”
sudo apt-get install exiv2 # EXIF图片的元数据操作
好了,要转换图片的话,进入目录后请运行如下命令:
find *.CR2 | while read f; do echo $f; convert $f $(echo $f|sed s/.CR2/.jpg/);done
convert 命令会自动调用ufraw-batch进行格式转换。当然convert还有更多强大的功能,模糊、锐化等,这里就不讨论了。
exiv2 主要是用于读取图片的metadata:
$ exiv2 IMG_0041.CR2
File name : IMG_0041.CR2
File size : 12092517 Bytes
MIME type : image/x-canon-cr2
Image size : 3888 x 2592
Camera make : Canon
Camera model : Canon EOS 400D DIGITAL
Image timestamp : 2008:10:30 15:04:44
Image number :
Exposure time : 1/200 s
Aperture : F14
Exposure bias : 0
Flash : No, compulsory
Flash bias : 0 EV
Focal length : 55.0 mm
Subject distance: 643
ISO speed : 100
Exposure mode : Manual
Metering mode : Multi-segment
Macro mode : Off
Image quality : RAW
Exif Resolution : 3888 x 2592
White balance : Auto
Thumbnail : image/jpeg, 4500 Bytes
Copyright :
Exif comment :
上面的数据中,可以看到拍摄该相片的是什么设备,以及各类拍摄参数,如曝光时间、光圈大小等。
exiv2有python模块,[url=http://tilloy.net/dev/pyexiv2]python-pyexiv2[/url]
import gtk
import pyexiv2
# load a CR2 image file and read its metadata
image = pyexiv2.Image('IMG_0041.CR2')
image.readMetadata() #
print image.exifKeys() # list all available EXIF tags in the image
image.dumpThumbnailToFile("thumbnail") # save to thumbnail.jpg
# Display it in a GTK window
ttype, tdata = image.getThumbnailData()
pbloader = gtk.gdk.PixbufLoader()
pbloader.write(tdata)
pixbuf = pbloader.get_pixbuf()
pbloader.close()
imgwidget = gtk.Image()
imgwidget.set_from_pixbuf(pixbuf)
app = gtk.Window(gtk.WINDOW_TOPLEVEL)
app.add(imgwidget)
imgwidget.show()
app.show()
gtk.main()
[img]/upload/attachment/117841/3d6c6009-2f5c-37b7-964f-02d5a828888d.png[/img]
[url=http://ufraw.sourceforge.net]ufraw[/url]其实本身也有很多功能,白平衡、灰度、曝光度等调节,非常实用:
[img]/upload/attachment/117813/de8c02fc-fbdf-3903-a3aa-0b5d58e373a9.png[/img]
这里是网上摘抄的一些相关知识:
[b]Exif的标识[/b]
所有的JPEG文件以字符串“0xFFD8”开头,并以字符串“0xFFD9”结束。文件头中有一系列“0xFF??”格式的字符串,称为“标识”,用来标记JPEG文件的信息段。“0xFFD8”表示图像信息开始,“0xFFD9”表示图像信息结束,这两个标识后面没有信息,而其它标识紧跟一些信息字符。
0xFFE0 -- 0xFFEF之间的标识符称为“应用标记”,没有被常规JPEG文件利用,Exif正是利用这些信息串记录拍摄信息如快门速度、光圈值等,甚至可以包括全球定位信息。按照Exif2.1标准对这些标识符的定义,数码相机可以把各种拍摄信息记入数码图像中,应用软件可以读取这些数据,再按照Exif2.1标准,检索出它们的具体含义,一般而言包括以下一些信息:
Image Description 图像描述、来源. 指生成图像的工具
Artist作者 有些相机可以输入使用者的名字
Make 生产者 指产品生产厂家
Model 型号 指设备型号
Orientation方向 有的相机支持,有的不支持
XResolution/YResolution X/Y方向分辨率 本栏目已有专门条目解释此问题。
ResolutionUnit分辨率单位 一般为PPI
Software软件 显示固件Firmware版本
DateTime日期和时间
YCbCrPositioning 色相定位
ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。
ExposureTime 曝光时间 即快门速度
FNumber光圈系数
ExposureProgram曝光程序 指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。
ISO speed ratings感光度
ExifVersionExif版本
DateTimeOriginal创建时间
DateTimeDigitized数字化时间
ComponentsConfiguration图像构造(多指色彩组合方案)
CompressedBitsPerPixel(BPP)压缩时每像素色彩位 指压缩程度
ExposureBiasValue曝光补偿。
MaxApertureValue最大光圈
MeteringMode测光方式, 平均式测光、中央重点测光、点测光等。
Lightsource光源 指白平衡设置
Flash是否使用闪光灯。
FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录
FlashPixVersionFlashPix版本 (个别机型支持)
ColorSpace色域、色彩空间
ExifImageWidth(Pixel X Dimension)图像宽度 指横向像素数
ExifImageLength(Pixel Y Dimension)图像高度 指纵向像素数
Interoperability IFD通用性扩展项定义指针 和TIFF文件相关,具体含义不详
FileSource源文件
Compression压缩比。