数码相机是目前增长最快的外设之一,在Linux下它的配置非常简单。主要通过gphoto2软件包支持数码相机。通常只要安装配置gphoto2软件包就可以在Linux下使用数码相机。最新2.1.6 版本 的gphoto2支持27个厂商的616多种型号的数码相机,可以查看链接:http://www.gphoto.org/proj/libgphoto2/support.php。如果你的数码相机在驱动之列。那么可以正常使用。说明:除了下载安装gphoto2外另外几个函数库:libgphoto2、libkexif、libkipi也要安装,在gphoto2官方网址都可以找到,下载方法:
#wget http://ovh.dl.sourceforge.net/sourceforge/gphoto/gphoto2-2.1.6.tar.gz
#wget http://keihanna.dl.sourceforge.net/sourceforge/gphoto/libgphoto2-2.1.6.tar.gz
#wget http://umn.dl.sourceforge.net/sourceforge/digikam/libkipi-0.1.2.tar.bz2
#wget http://umn.dl.sourceforge.net/sourceforge/digikam/libkexif-0.2.2.tar.bz2
安装过程比较简单,这里就不赘述了。下面介绍如何在Linux下玩转数码相机,操作系统Red Hat Enterprise Linux 4.0。
一、Linux环境下USB数码相机的驱动: 数码相机和PC之间一般采用USB接口进行通信,最理想的情况是可以即插即用的。在这种情况下,只需要使用简单的mount命令,就可以像存取闪盘一样存取数码相机上的资料。USB的技术特色此处不再赘述,看一看Linux对USB的支持。USB采用串行方式传输数据,USB 1.1最大数据传输率为12Mbps,Linux内核为2.4以上版本都可以支持。USB 2.0规范是由USB 1.1规范演变而来的,Linux内核2.4.19版本开始对USB 2.0进行支持。除了内核的版本要对USB接口进行支持之外,还要确定目前的系统是否编译了USB的驱动模块。如果让Linux系统支持USB设备,还需要一些驱动模块。我们都知道内置的驱动程序一般都在 /lib/modules/2.xxxx/kernel/drivers目录中。这个目录中会有usb及几个子目录,可以从中找到以下的几个USB关键基础模块:usbcore.o 是所有USB设备都需要的基本驱动模块;
host/ehci-hcd.o 是USB 2.0设备支持;host/usb-uhci.o 是Intel VIA等芯片组USB部分的驱动;
host/usb-ohci.o 是 iMac、SiS、Ali等非Intel芯片组USB部分的驱动;storage/usb-storage.o 是USB接口的存储设备,如移动硬盘、USB闪盘等都会用到;hid.o 是USB接口的键盘、鼠标等人机交互设备的基础支持。在该目录下还有一些具体设备的驱动程序,分别驱动不同设备:usb-storage.o USB是针对与存储部分的驱动模块;scsi_mod.o 是针对SCSI设备的支持; sd_mod.o 是针对SCSI硬盘支持模块;sr_mod.o 是针对SCSI光驱支持模块;ide-scsi.o 该模块可以把IDE设备模拟成SCSI接口。
数码相机接口类型繁多,但是我们知道USB接口是数码相机的主要接口,在Linux中访问数码相机,通常可以通过下面两种方法。
1. 命令行下操作数码相机
安装gphoto2软件包后就可以驱动数码相机了,通常有两个命令可以查询数码相机的情况,gphoto2 --auto-detect和gphoto2 -a。使用gphoto2 --auto-detect命令进行型号检测,而gphoto2 –a用于参数检测:
# gphoto2 --auto-detect
型号 端口
HP PhotoSmart R507 (PTP mode)usb
----------------------------------------------------------
gphoto2 -a
相机功能 :HP PhotoSmart R507 (PTP mode)
串口支持 :否
USB 支持 :是
支持的传输速度 :9600
:19200
:38400
:576000
:1152000
捕捉选项 :图像
:预览
支持配置 :是
支持删除相机内文件 :是
支持文件预览 (缩略图):是
文件上载支持 :是
gphoto2重要操作命令:
--list-cameras :列举支持的数码相机
--list-ports :列举支持的端口设备
--auto-detect :自动检测数码相机功能
--list-files :列出数码相机存储的文件
--num-files :显示 数码相机存储的文件数量
-get-all-thumbnails :获取所有文件
-delete-all-files :删除所有文件
-upload-file :上传文件到数码相机
-summary : 数码相机目前工作状态
-capture-movie :捕捉数码相机的视频文件
―capture-sound :捕捉数码相机的音频文件
―manual :打开相机启动手册页
2.使用专门软件
通常我们更加喜欢使用基于图形化应用程序对相机进行操作,新款的数码相机一般都支持图片传输协议。 PTP是英语“图片传输协议(picture transfer protocol)”的缩写。ptp是最早由柯达公司与微软协商制定的一种标准,符合这种标准的图像设备在接入系统之后可以更好地被系统和应用程序所共享,尤其在网络传输方面,系统可以直接访问这些设备用于建立网络相册时图片的上传、网上聊天时图片的传送等。当然,这主要是为方便计算机知识不多的普通用户的,使相机、应用软件、网站结合在一起更容易地完成一些傻瓜式功能。一些Linux发行版本下也有多款支持PTP协议的软件,比较著名的是gtkam。一些Linux发行版本(Red Hat Linux 9.0)中已经自带了该程序。如果是有经验的玩家,也可以下载源代码自己编译,下载链接:http://ovh.dl.sourceforge.net/sourceforge/gphoto/gtkam-0.1.12.tar.gz。市面上的绝大多数新款数码相机都支持PTP协议,但往往不是缺省设置,需要自己将记忆体模式设定为PTP模式。运行gtkam软件,选择Camera选单中的Add Camera,单击gtkam的“camera”→“Add Camera”可以添加数码相机,然后在弹出的窗体中单击“Detect”,测试数码相机的连接类型。最后单击“OK”,就可以看到数码相机中的照片了。
图1 gtkam读取数码相机时的界面
图1所示使用gtkam连接HP 507相机,看到存储卡中的照片。选择照片,单击保存就可以把照片保存到硬盘上。其他优秀的数码照相机图形化界面的程序包括:digikam(http://keihanna.dl.sourceforge.net/sourceforge/digikam/ ),gThumb(http://gthumb.sourceforge.net/ )
gtkam软件是一个提供了数码照相机图形化界面的程序,gtkam可以直接与数码照相机相连,允许直接打开、查看、并删除图像。gtkam基于gphoto2,有时无法使用gtkam的原因是因为gphoto2没有安装或模块被覆盖,所以需要重新安装gphoto2。不论采用那种前端程序,安装gphoto2程序是关键。
3.把数码相机作为存储设备
可以把数码相机当做是存储设备 ,这样就可以像访问优盘那样来访问数码相机:
# mkdir /mnt/camera
#mount -t vfat /dev/sda1 /mnt/camera
如果希望数码相机可以自动挂载,可以在/etc/fstab加入一行:
/dev/sda1 /mnt/camera auto defaults, user,noauto 0 0
但是只有以下型号支持,见表1:
厂商名称
具体型号
Casio(卡西欧)
QV-2400UX, QV-2x00, QV-3x00, QV-4000 , QV-8000
Fuji(富士)
FinePix 1300, 1400Zoom, 2300Zoom, 2400Zoom, 2800Zoom, 4200Z,
4500, 4700 Zoom, 4900 Zoom, 6800 Zoom, A101, A201, ,S1 Pro
HP(惠普)
PhotoSmart 315, 318xi, 618, C912
Konica(柯尼卡)
KD200Z, KD400Z, and Revio KD300Z
Leica(莱卡)
Digilux 4.3
Olympus(奥林巴斯)
Zoom D-15, C-100, C-200Z, C-2040, C-220Z, C-2Z, C-3020Z, C-3040Z,C-4040Zoom, C-700, C-700UZ, C-860L, D-510, D-520Z, E-10, E-20
Nikon(尼康)
CoolPix 2500, 885, 5000, 775, 995
Pentax(宾得)
EI2000, Optio 330, Optio 430
Sony(索尼)
DSC-F505,DSC-F505V,DSC-F707,DSC-P1,DSC-P20,DSC-P5, DSC-P71,DSC-S30,DSC-S70,DSC-S75,DSC-S85,MVC-CD300,MVC-FD92
Minolta(美能达)
Dimage 5, Dimage 7, Dimage X
Kyocera(京瓷)
Finecam S3
Vivitar(威达 )
Vivicam 3550
非常遗憾的是Kodak系列数码相机不能当作存储设备使用。
二、使用GIMP加工数码相片 有些照片可能由于种种原因,如光线、角度不佳,或者是由于摄影、扫描技术问题,造成数码图片效果不尽如人意。对这些数码照片进行后期处理是十分必要的,在Linux中推荐使用GIMP(GNU Image Manipulation Program,GNU图象处理程序)专业级的图像处理软件。 GIMP官方网址:http://www.gimp.org/。GIMP最新版本是二〇〇五年十月四日 发布的2.3.5,能在Windows、Mac、Unix和Linux平台上使用。
1.修正数码照片
由于拍摄或扫描的失误可能造成数码照片歪斜,这是十分常见的现象。出现了这种情况,GIMP可以轻而易举。使用GIMP打开照片,使用“钢笔”工具沿着歪斜照片边缘建立起路径,打开“图层通道和路径”对话框,选择路径变选区按钮。然后单击工具箱中的“自由变形”工具,这时,选区就会被网格覆盖,将鼠标指向网格的一角,拖动到合适的角度后,单击弹出的变形对话框中的“Ratation”按钮,即可将歪斜图片摆正。拍摄照片时,由于焦距设定不当或拍照时手抖动,而造成照片模糊,此时可以使用GIMP的锐化滤镜来弥补打开由于焦距不准而造成图像模糊的照片,单击该图片窗口左上角的窗体选单按钮,从图像选单中选择“滤镜/增强/锐化”,在弹出的滤镜参数设定锐化值。如果一下拿不准锐化值的话,可以参照预览结果选择一个比较合适的锐化值,然后单击“OK”按钮即可。另外在实际拍摄中,由于环境、时间的不同,数码照片常常出现偏色,例如在室内拍摄的照片,最容易出现偏红色或偏黄色。使用GIMP的色相/饱和度来调整照片的偏色,可以使色彩趋于正常、和谐。
2.格式转换
使用数码相机拍摄的照片通常保存为JPEG格式,但由于大家需求不尽相同,因此就产生了图片格式转换的问题,例如要将图片用于出版和印刷,转换为TIFF格式就要比JPEG方便得多。GIMP数码照片支持的图片格式众多,有二十七八种。它不但支持常见的BMP、JPEG、GIF、PNG,还支持一些比较专业的图像格式,是一个“天生”的图片格式转换好手。只需使用GIMP打开要转换的图片,在窗口选单中选择“文件/Save As...”,再简单地修改一下图片文件的扩展名,将jpg改为bmp、tiff或其它的扩展名,重新保存,即可以完成图片格式的传换。
3.为数码图片添加水印
现在许多朋友都在互联网上建立自己的网站,并且在设计网站时都喜欢使用一些具有个性的图片来点缀网页,你一定不希望自己精心制作的图片被别人剽窃使用。如果能够在图片中加上自己的水印图片或者文字的话,一定会使想剽窃你的作品的人退避三舍。另外为自己的杰作加上水印,就像画家要为自己的作品加上签名一样。使用GIMP打开欲添加水印的图片,选好添加水印的位置。如果添加水印是为防止图片被盗用,那么水印最好与图片主要内容部分相混合,这样可以增大防盗用的难度。如果只是作为自己的签名,那么通常放在图片的边缘,只要签名清晰即可。选择GIMP工具箱中的文字工具,这时光标就会变为文字编辑样式。单击欲添加水印的位置就会出现文字对话框,该对话框上部可以设置添加文本的字体、样式和大小,最后在预览文本框中加入水印文字,这时图片上就会出现预览中键入的文字,并且为选区文字,此时可以自由移动该文字的位置,文字位置确定后就不可以移动了。接下来打开GIMP图像窗口选单,选择“对话框/图层、通道和路径”选项,在打开的图层、通道和路径对话框中选中文本图层,单击新建图层按钮将文本作为一个单独的图层。选中文本图层,并调节该层的Alpha(不透明)值为6~50之间,这时该图片的水印效果就出来了,见图2所示。
图2 为图像添加水印
4.为数码照片制作相框
通常大多数的数码照片都是以原稿保存,不加任何修饰。给数码照片加上一个漂亮的边框,数码照片就会更加漂亮,更具有特色。启动GIMP,并打开欲加边框的数码照片。选择GIMP的矩形选择工具,在数码照片上框出边框的边缘,与设想的边框大小相符后单击GIMP图片窗口选单,打开“选择/羽化...”选项,在随后弹出的羽化对话框中键入羽化值,在这里笔者将其值由默认的5改为50。然后单击“确定”,这时刚刚建立的矩形选区的四角就会变为圆角,说明羽化成功。羽化选区后,再选择GIMP图片窗口选单的“选择/反选”,便可建立起数码照片的边框。这时如果边框大小不合适,就需要重复上一步骤,调整选区大小,并重新设置羽化值。最后选择GIMP图片窗口选单的“编辑/清除”,即可建立一个背景色的边框,见图3。
图3为数码照片制作相框
三、用igal建立在线Web相册 随着互联网和数码产品的普及,许多用户希望自己制作的数码相片以Web方式和朋友分享。使用igal(http://www.stanford.edu/~epop/igal/ )可以轻松实现。首先配置一个基于Apache的Web服务器和ImageMagicK软件,后者主要用于对图像进行转换、编辑、组合、特殊处理等,是一款非常好用的图像处理工具。它支持对多种格式的图像进行处理,最多支持的图像格式有157种格式,包括目前流行的TIFF、JPEG、PNG、PDF、PhotoCD及GIF等。Image MagicK还支持动态图像创建,这一点非常适合在Web页面上使用。Igal能够从映象文件中生成符合W3C标准的带缩略图和幻灯的静态XHTML 映射图库,支持的图像格式:PNG、GIF、JPEG。下载安装igal相关软件包:
#wget http://www.stanford.edu/~epop/igal/igal-1.4-1.noarch.rpm
#rpm -ivh ImageMagick-6.7.3-6.rpm
#rpm -ivh igal-1.4-1.noarch.rpm
然后把数码相机和存储卡的相片保存到Apache Web服务器的一个目录中(var/www/html)然后运行igal即可自动生成Web相册。
#cd var/www/html
# igal
Found 9 image files in directory .
Creating thumbnails: .thumb_1.jpg?http://www.xvna.com .thumb_2.jpg?http://www.xvna.com .thumb_20051104_181755_1.jpg?http://www.xvna.com .thumb_lusan0927_01.jpg?http://www.xvna.com .thumb_lusan0927_02.jpg?http://www.xvna.com .thumb_lusan0927_03.jpg?http://www.xvna.com .thumb_lusan0927_04.jpg?http://www.xvna.com .thumb_lusan0927_05.jpg?http://www.xvna.com .thumb_lusan0927_07.jpg?http://www.xvna.com ... done!
Determining image sizes ......... done!
No CSS template file ... getting /usr/local/lib/igal/igal.css
Found .slidetemplate.html file ... using it.
Creating individual slides: 1.html 2.html 3.html 4.html 5.html 6.html 7.html 8.html 9.html ... done!
Found .tile.png file ... using it.
Found .indextemplate.html ... using it.
Creating the index.html file ......... done!
最后启动Linux网页浏览器firefox即可在线欣赏Web相册。
图4 Web相册的索引
如果想单独查看某一张相片,只要用鼠标点击索引页面的图像即可。Igal是一个命令行工具软件,详细使用情况可以查看手册页(http://www.stanford.edu/~epop/igal/igalman.html )。
另外一个基于Web的电子相册软件:Gallery。它安装很简单,有完善的安装向导,并且提供给使用者非常直观方便的创建和管理工具。官方网址:http://gallery.sourceforge.net/
以上笔者介绍了几个工具,:从数码相机驱动程序到数码相片的加工、制作成Web相册。相信借助它们你可以轻松玩转数码相片。Widnows操作系统可以完成的工作在Linux下也会做得很好。