顯然有幾個 用於掃描照片的圖形界面,其中提供了許多選項。 但是,當要掃描的照片數量很大並且我們沒有配備自動供紙器的掃描儀時,事情就會變得很棘手。 通常,您必須單擊一下進行掃描,或者在窗口的另一端進行另一次單擊才能保存...這需要時間。 無論如何,一個很好的藉口來使用 命令行. |
我讀了以下文章 GIMP批處理圖像 y 如何從終端操作圖像,就在我的朋友Huguito向我索要我1989年旅行的照片(他丟失的照片)…(4卷36張照片!當然還有紙上🙂),它使我想起了掃描照片的技巧我忘記了。
這個想法是使用腳本來盡快完成它:
1.-將照片放在掃描儀上
2.-按任意鍵進行掃描
3.-重複該過程,除非按下的鍵例如是“ n”退出
4.-照片將被保存並在預先建立的子目錄中編號。
什麼命令
“魔術”命令是scanimage,它是SANE的一部分。 SANE是提供對任何成像設備的標準化訪問的API。 Sane API在公共領域中,其源代碼可在GNU通用公共許可證下獲得。
安裝很簡單。 每個發行版都帶有其軟件包。 對於Ubuntu(或其衍生產品),只需使用synaptic並安裝sane和sane-utils。
如何使用?
最好的方法總是在終端“ man scanimage”中寫入。 但是,我們將總結我們將使用的選項。
我們打開一個終端並運行scanimage -L以查看可用的設備:
掃描圖像
就我而言,它返回:
設備`xerox_mfp:libusb:001:005'是三星ORION多功能外圍設備
這就是它給我的Samsung SCX-4200多功能打印機帶來的結果。 如果您具有多合一功能,但找不到該設備,請確保打印機未處於活動狀態,例如打印待處理。
值“ xerox_mfp:libusb:001:003”用於通過-d選項告訴scanimage命令使用哪個設備。 如果僅連接一台掃描儀,則不需要此選項。
當scanimage命令掃描時,它將結果圖像以pnm或tiff格式發送到標準輸出。 因此,為了進行掃描,我們將輸出重定向到文件。 如果要查看命令給出的消息,請添加-v選項。 如果我們還想查看操作進度的百分比,請添加-p選項。
scanimage -v -p> image.tiff
scanimage:以1284位/像素掃描大小為1734x24像素的圖像
scanimage:獲取RGB幀
scanimage:最小/最大灰度值= 69/255
scanimage:總共讀取6679368字節
進度:13.8%
如果我們執行scanimage –help,它將給我們帶來什麼? 看起來很明顯,它為命令提供了幫助。 但是此命令具有特殊性。 在命令的常規幫助末尾,添加掃描儀可接受的特定參數。
scanimage-幫助
用法:scanimage [OPTION] ...
BLA bla ....
特定於設備`xerox_mfp:libusb:001:005'的選項:
標準:
--resolution 75 | 100 | 150 | 200 | 300 | 600dpi [150]設置掃描圖像的分辨率。
--mode線稿|半色調|灰色|彩色[顏色]選擇掃描模式(例如,線稿,單色或彩色)。
--highlight 30..70%(以10為步進)[不活動]選擇最小亮度以獲得白點
--source平板| ADF |自動[平板]選擇掃描源(例如文檔進紙器)。
幾何:
-l 0..215.9mm(以1為步長)[0]左上角x掃描區域的位置。
-t 0..297.18mm(以1為步長)[0]左上角和掃描區域的位置。
-x 0..215.9mm(以1為步長)[215.9]掃描區域的寬度。
-y 0..297.18mm(以1為步長)[297.18]掃描區域的高度。
輸入``scanimage --help -d DEVICE''以獲取DEVICE所有選項的列表。
可用設備列表:
xerox_mfp:libusb:001:005
從這裡我們可以選擇具有我們可以使用的值的選項。
例如:
決議
–第150號決議
摩多
–模式顏色
現在是幾何。 這非常有用,因為我們可以告訴掃描儀僅提取一個扇區的圖像(我們將在其中放置照片),並且節省了掃描其餘表面的時間,我們稍後還應使用圖形編輯器進行切割,例如作為金普。
-l 0從掃描儀左上角0毫米開始水平掃描
-t 0從掃描儀左上角0毫米開始垂直掃描
請注意,我選擇將照片放在掃描儀的角落[坐標(0,0)],因為它更易於放置。 在我的掃描儀(A4尺寸)上,l可以從0到215.9,t可以從0到297.18。
照片的寬度和高度。 在我的情況下,照片是13x18cm:
-x 180寬
-和130高
因此,它將僅掃描我們放置照片的部分。 當然,如果我們同意左邊,右邊,寬度,高度,頂部和底部是什麼。 這將取決於您如何看待掃描儀。 我建議測試坐標並根據需要進行調整。
該命令的示例可能是:
scanimage -d xerox_mfp:libusb:001:003 -p-模式顏色-分辨率150 -l 0 -t 0 -x 180 -y 130> image.pnm
使用這些選項,我們已經可以構建腳本。
但是之前...
Tiff或pnm是未壓縮的格式,因此我們的照片將佔用巨大的磁盤空間。 這是ImageMagick轉換命令所在的位置,有關如何從終端操作圖像進行了說明。
如果我們從掃描儀獲得了image.pnm,則可以將其轉換為jpg:
轉換image.pnm image.jpg
但是在這樣做之前,還有另一個技巧:
Image.pnm佔用大量空間,獲取image.jpg後應將其刪除。 convert命令有一個選項,以便代替直接從磁盤上獲取文件,它將直接轉換標準輸入。 這是通過破折號-而不是文件來完成的:
轉換-image.jpg
由於scanimage將掃描的圖像傳送到標準輸出,因此我們進行了“流水線化”,並節省了從磁盤刪除image.pnm文件所需的處理時間。
scanimage -d xerox_mfp:libusb:001:003 -p --mode顏色-分辨率150 -l 0 -t 0 -x 180 -y 130 | 轉換-image.jpg
現在是的,腳本...
我們將以下代碼寫入一個名為scan-album.sh的文件中,並授予其執行權限。 當我們運行它時,它將創建一個子目錄,掃描的照片將位於該子目錄中。 切記根據需要修改參數值。
一定要在腳本之後閱讀一些建議。
#!/斌/慶典
#選項數據
VERBOSE =“”#查看狀態msg:“”不是; “ -v”是
PROGRESS =“-p”#顯示進度“”為否; “ -p”是
#scanimage --help為您的掃描儀提供以下參數
#Device:如果只有一台掃描儀,則沒有必要,將DEV =“”
#DEV =“ xerox_mfp:libusb:001:003”
DEV =“”
MODE =“-模式顏色”
解決方案=“-分辨率600dpi”
#geometry,例如130x180毫米照片
#位於左上角頂點掃描器中
x0 = 0
y0 = 0
寬度= 180
高= 130
#選項:
L =“-l $ x0”
T =“-t $ y0”
WIDTH =“-x $ width”
HIGH =“-和$高”
#所有參數一起:
參數=“ $ DEV $詳細信息$進度$模式$分辨率$ L $ T $寬度$高”
#相冊名稱。 用您的名字創建一個子目錄:
專輯=“假日_1989”
#為了安全起見,如果目錄已經存在,我什麼也不做
mkdir $專輯
如果[“ $?” =“ 1”]; 然後
退出100
fi
#照片的基本名稱(在子目錄中)
FILE =“ ./” $專輯“ /” $專輯“ _foto_”
函數問題(){
扔出去 ” - - - - - - - - - - - - - - - - - - - - - - - - --------------------------“
錯過
扔出去 ”******************************”
回顯“掃描的照片數量:”“ $ I”
扔出去 ”******************************”
echo -e“按:n * n退出*另一個要掃描的鍵。”
錯過
讀-s -n1 -p“掃描新照片?” 按鍵
錯過
}
#############################################
#開始
#############################################
我= 0
問題
while [“ $ keypress”!=“ n”]; 做
#要掃描的新照片
讓“我+ = 1”
名稱= $ FILE $ I
scanimage $參數| 轉換-$ NAME.jpg
問題
完成
建議
使用示例中的高分辨率會使掃描速度變慢。
請記住,如果要在紙張上打印照片,則每英寸需要大約250點。 如果掃描照片的想法是使用與原始照片相同的尺寸打印照片,則分辨率為250就足夠了。要在監視器上查看照片,則100張就足夠了。 更高的分辨率將有助於放大。
照片堆應該事先準備好,以便每張照片都在右側。 這樣,您就不會浪費時間將其放入掃描儀中,這樣它們就不會旋轉180º。
校準幾何參數的測量值時,建議觀察將原件放置在哪個位置,以使數字圖像不會“倒置”。 在我的情況下,照片的下部沿“ l”軸移動。
如果僅連接一台掃描儀,請不要使用-d選項。 在腳本中是DEV =»»
有時“ xerox_mfp:libusb:001:003”中的數字會更改,並且每次使用腳本時都必須對其進行修改。
複製腳本時,請注意連字符和引號。 連字符(減號)可以是一個或兩個在一起,具體取決於選項。 引號是鍵盤上的雙引號,而不是像LibreOffice這樣的某些文字處理程序所使用的引號。
為了安全起見,腳本不會創建該目錄(如果該目錄已經存在),以免覆蓋目錄(如果有的話)。 在這種情況下,它將停止。
如果相冊較舊,則不要後悔缺少頭髮,皺紋或公斤的圖像:-
哇! 多麼好的兔兔!
我不認為bash xD可以完成很多事情
每天您都會學到更多!
感謝您的輸入!
我沒有掃描儀,但如果有掃描儀,我會立即嘗試try
這種貢獻對我的筆記數字化有多大幫助,我希望它能有所改善,我正在考慮一種功能,可以掃描整個文件並檢測掃描對象的大小,因為我們依賴圖像魔術,它可以轉換為djvu或pdf,從而創建一個文件。 好吧,我只是閒逛。 非常感謝您的貢獻。
非常高興,非常感謝您的分享。