數碼相機是目前增長最快的外設之一,在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 .thumb_2.jpg .thumb_20051104_181755_1.jpg .thumb_lusan0927_01.jpg .thumb_lusan0927_02.jpg .thumb_lusan0927_03.jpg .thumb_lusan0927_04.jpg .
thumb_lusan0927_05.jpg .thumb_lusan0927_07.jpg ... 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下也會做得很好。