Komut satırından bir komut dosyasıyla bir fotoğraf albümünü tarayın

Açıkça birkaç tane var fotoğrafları taramak için grafik arayüzlersayısız seçenek sunan. Ancak taranacak fotoğraf sayısı çok olduğunda ve otomatik kağıt besleyiciye sahip bir tarayıcımız olmadığında işler zorlaşır. Genelde taramak için bir tıklama yapmanız gerekir, kaydetmek için belki de pencerenin diğer ucunda başka bir tıklama yapmanız gerekir ... bu zaman alır. Her neyse, kullanmak için iyi bir mazeret Komut satırı.

Bu, Rubén'in bir katkısı ve böylece haftalık yarışmamızın kazananlarından biri haline geldi: «Linux hakkında bildiklerinizi paylaşın«. Tebrikler Rubén!

İle ilgili yazıları okudum GIMP ile Toplu Görüntü İşleme y Terminalden görüntüler nasıl işlenir, tam da arkadaşım Huguito'nun 1989'da yaptığımız bir gezinin (kaybettiği) fotoğraflarını sorduğu gün… (4 rulo 36 fotoğraf! ve tabii ki kağıt üzerinde 🙂. Fotoğrafları taramak için bana bu ipucunu hatırlattı unutmuştum.

Buradaki fikir, bunu olabildiğince hızlı yapmak için bir komut dosyası kullanmaktır:

1. - Tarayıcıya bir fotoğraf yerleştirin
2. - Taramak için herhangi bir tuşa basın
3. - Basılan tuş örneğin çıkmak için 'n' olmadığı sürece prosedürü tekrarlayın
4.- Fotoğraflar önceden belirlenmiş bir alt dizine kaydedilecek ve numaralandırılacaktır.

Hangi komut?

'Sihirli' komut, SANE'nin bir parçası olan scanimage'dir. SANE, herhangi bir görüntüleme cihazına standart erişim sağlayan bir API'dir. Sane API kamu malıdır ve kaynak kodu GNU Genel Kamu Lisansı altında mevcuttur.

Kurulum basittir. Her dağıtım kendi paketlerini getirir. Ubuntu (veya türevleri) için sinaptik kullanmak ve aklı başında ve aklı başında araçlar kurmak yeterlidir.

Nasıl kullanılır?

Her zaman en iyisi bir terminal 'man scanimage' ile yazmaktır. Ancak kullanacağımız seçenekleri özetleyeceğiz.

Mevcut cihazları görmek için bir terminal açıp scanimage -L çalıştırıyoruz:

tarama görüntüsü -L

Benim durumumda geri dönüyor:

cihaz `xerox_mfp: libusb: 001: 005 'bir SAMSUNG ORION çok işlevli çevre birimidir

Samsung SCX-4200 çok işlevli cihazımla bana verdiği sonuç buydu. Bir MFP'niz varsa ve cihazı bulamıyorsanız, yazıcının aktif olmadığından emin olun, örneğin bekleyen bir baskı ile.

'Xerox_mfp: libusb: 001: 003' değeri, scanimage komutuna -d seçeneği aracılığıyla hangi aygıtın kullanılacağını bildirmek için kullanılır. Yalnızca bir tarayıcı bağlıysa, bu seçenek gerekli değildir.

Scanimage komutu taradığında, elde edilen görüntüyü pnm veya tiff formatında standart çıktıya gönderir. Bu yüzden taramak için çıktıyı bir dosyaya yönlendiririz. Ve komutun hangi mesajları verdiğini görmek istiyorsak, -v seçeneğini ekliyoruz. İşlemin ilerleme yüzdesini de görmek istiyorsak -p seçeneğini ekleriz.

scanimage -v -p> image.tiff

scanimage: 1284x1734 piksel boyutundaki görüntüyü 24 bit / pikselde tarama
scanimage: RGB çerçevesi elde etme
scanimage: min / maks gri seviye değeri = 69/255
scanimage: toplam 6679368 bayt oku
İlerleme durumu: 13.8%

Görüntüyü tararsak –yardım yaparsak bize ne verecek? Açık görünüyor, komuta yardım ediyor. Ama bu emrin bir özelliği var. Komut için genel yardımın sonuna tarayıcınızın kabul ettiği belirli parametreleri ekleyin.

scanimage - yardım

Kullanım: scanimage [SEÇENEK] ...

BLA bla ...

"Xerox_mfp: libusb: 001: 005 'cihazına özel seçenekler:

standart:
--çözünürlük 75 | 100 | 150 | 200 | 300 | 600dpi [150] Taranan görüntünün çözünürlüğünü ayarlar.
--mode Lineart | Halftone | Grey | Color [Color] Tarama modunu seçer (örn. çizim, monokrom veya renkli).
-% 30..70 vurgulayın (10'luk adımlarla) [etkin değil] Beyaz bir nokta elde etmek için minimum parlaklığı seçin
--source Düz Yatak | ADF | Otomatik [Düz Yatak] Tarama kaynağını seçer (belge besleyici gibi).
Geometri:
-l 0..215.9mm (1'lik adımlarla) [0] Tarama alanının sol üst x konumu.
-t 0..297.18mm (1'lik adımlarla) [0] Sol üst ve tarama alanının konumu.
-x 0..215.9mm (1'lik adımlarla) [215.9] Tarama alanının genişliği.
-y 0..297.18mm (1'lik adımlarla) [297.18] Tarama alanının yüksekliği.

DEVICE için tüm seçeneklerin listesini almak için `` scanimage --help -d DEVICE '' yazın.

Kullanılabilir cihazların listesi:

xerox_mfp: libusb: 001: 005

Buradan kullanabileceğimiz değerlere sahip seçenekleri seçebiliriz.

Örnek:

Karar

–Çözünürlük 150

Kip

–Mod Rengi

Şimdi geometri. Bu çok kullanışlıdır çünkü tarayıcıya yalnızca bir sektörün görüntüsünü (fotoğrafı koyacağımız yere) çıkarmasını söyleyebiliriz ve daha sonra böyle bir grafik düzenleyici ile kesmemiz gereken yüzeyin geri kalanını tarama zamanından tasarruf ederiz. Gimp olarak.

-l 0, tarayıcının sol üst köşesinden 0 mm'den yatay olarak taramaya başlar

-t 0, tarayıcının sol üst köşesinden 0 mm'den dikey olarak taramaya başlar

Yerleştirmesi daha kolay olduğu için fotoğrafı tarayıcının köşesine [koordinatlar (0,0)] koymayı seçtiğime dikkat edin. Tarayıcımda (A4 boyutu) l 0'dan 215.9'a ve t 0'dan 297.18'e gidebilir.

Fotoğrafın Genişliği ve Yüksekliği. Benim durumumda fotoğraflar 13x18cm:

-x 180 geniş

-ve 130 yüksek

Bu nedenle sadece fotoğrafımızı koyduğumuz kısmı tarayacaktır. Elbette solun, sağın, genişliğin, yüksekliğin, üst ve alt tarafın ne olduğu konusunda anlaşırsak. Tarayıcınıza nasıl baktığınıza bağlı olacaktır. Koordinatları test etmenizi ve ihtiyaçlarınıza göre ayarlamanızı öneririm.

Komutun bir örneği şunlar olabilir:

scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Color --resolution 150 -l 0 -t 0 -x 180 -y 130> image.pnm

Bu seçeneklerle betiğimizi zaten oluşturabilirdik.

Ama önce…

Tiff veya pnm sıkıştırılmamış formatlardır, bu nedenle fotoğraflarımız çok büyük disk alanı kaplar. ImageMagick convert komutunun geldiği yer burasıdır ve terminalden görüntüleri nasıl değiştirilir?

Tarayıcıdan bir image.pnm alırsak, onu jpg'ye dönüştürebiliriz:

image.pnm image.jpg dönüştür

Ancak bunu yapmadan önce başka bir numara:

Image.pnm çok yer kaplıyor ve image.jpg dosyasını aldıktan sonra onu silmeliyiz. Convert komutu için bir dosya diskten almak yerine doğrudan standart girdiyi dönüştürmesi için bir seçenek vardır. Bu, dosya yerine kısa çizgi ile gerçekleştirilir:

convert - image.jpg

Scanimage taranan görüntüyü standart çıktıya teslim ettiğinden, bir "boru hattı" oluştururuz ve image.pnm dosyasını diskten yazmak ve sonra silmek için gereken işlem süresini kaydederiz.

scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Renkli --çözünürlük 150 -l 0 -t 0 -x 180 -y 130 | convert - image.jpg

Şimdi evet, senaryo ...

Aşağıdaki kodu scan-album.sh olarak adlandıracağımız bir dosyaya yazıp çalıştırma izni veriyoruz. Çalıştırdığımızda, taranan fotoğraflarımızın olacağı bir alt dizin oluşturacaktır. Parametre değerlerini ihtiyaçlarınıza göre değiştirmeyi unutmayın.

Komut dosyasından sonra bazı önerileri okuduğunuzdan emin olun.

#! / Bin / bash
# Seçenekler için veriler

VERBOSE = "" # durum mesajına bakın: "" değil; "-v" evet
İLERLEME = "- p" # ilerlemeyi göster "" hayır; "-p" evet

# Aşağıdaki parametreler scanimage tarafından verilir - tarayıcınız için yardım
#Device: Yalnızca bir tarayıcı varsa, gerekli değildir, DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"

DEV = ""
MOD = "- mod Rengi"
ÇÖZÜNÜRLÜK = "- çözünürlük 600dpi"

# geometri, ör. 130x180 mm fotoğraf
#location sol üst köşe tarayıcıda

x0 = 0
y0 = 0
genişlik = 180
yüksek = 130

#options:

L = "- l $ x0"
T = "- t $ y0"
WIDTH = "- x $ genişlik"
YÜKSEK = "- ve yüksek $"

# tüm parametreler bir arada:

PARAMETRELER = "$ DEV $ VERBOSE $ İLERLEME $ MODE $ ÇÖZÜM $ L $ T $ GENİŞLİK $ YÜKSEK"

# Albümün adı. Adınızla bir alt dizin oluşturun:

ALBÜM = "Tatil_1989"

# Güvenlik için, dizin zaten varsa hiçbir şey yapmam

mkdir $ ALBÜM

eğer ["$?" = "1"]; sonra
çıkış 100
fi

# Fotoğraflar için temel ad (alt dizinde)

DOSYA = "./" $ ALBÜM "/" $ ALBÜM "_foto_"

function soru () {
"------------------------------------------------ ------------------------- "
kaçırmak
"******************************"
echo "Taranan fotoğraf sayısı:" "$ I"
"******************************"
echo -e "Çıkmak için n * n'ye basın * Taranacak başka bir tuş."
kaçırmak
read -s -n1 -p "Yeni bir fotoğraf taransın mı?" tuşa basmak
kaçırmak
}

################################################

# Başlat

################################################

I = 0

soru

while ["$ keypress"! = "n"]; yapmak
Taranacak # yeni fotoğraf
"I + = 1" olsun
AD = $ DOSYA $ I
scanimage $ PARAMETRELER | dönüştür - $ NAME.jpg
soru
yapılmış

Öneriler

Örnekteki gibi yüksek çözünürlüklerin kullanılması taramayı çok daha yavaş hale getirir.

Kağıda bir fotoğraf yazdırmak istiyorsanız inç başına yaklaşık 250 noktaya ihtiyacınız olduğunu unutmayın. Fotoğrafları tarama fikri orijinali ile aynı boyutta basmaksa 250 çözünürlük yeterlidir. 100'lük bir monitörde görmek yeterlidir. Daha yüksek bir çözünürlük büyütmeye hizmet eder.

Her fotoğrafın sağ tarafta olması için fotoğraf yığını önceden hazırlanmalıdır. Bu şekilde 180º döndürülmemesi için tarayıcıya koymakla zaman kaybetmeyeceksiniz.

Geometri parametrelerinin ölçümlerini kalibre ederken, dijital görüntülerin "baş aşağı" olmaması için orijinalin hangi konuma yerleştirilmesi gerektiğinin gözlemlenmesi tavsiye edilir. Benim durumumda, fotoğrafın alt kısmı 'l' ekseni boyunca gidiyor.

Bağlı tek bir tarayıcınız varsa, -d seçeneğini kullanmamaktan çekinmeyin. Komut dosyasında DEV = »»

Bazen "xerox_mfp: libusb: 001: 003" içindeki sayılar değişir ve komut dosyasını her kullandığınızda onu değiştirmeniz gerekir.

Komut dosyasını kopyalarken tirelere ve tırnak işaretlerine dikkat edin. Kısa çizgiler (eksi işareti) seçeneğe bağlı olarak birlikte bir veya iki olabilir; tırnak işaretleri klavyenin iki katıdır, LibreOffice gibi bazı kelime işlemcilerin koyduğu işaretler değildir.

Güvenlik için komut dosyası, varsa dosyaların üzerine yazmamak için dizini zaten varsa oluşturmaz. Bu durumda durur.

Fotoğraf albümü eskiyse, resimlerde bol tüy varsa, kırışıklıklar veya kilolar eksikse pişman olmayın: -


3 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Gençler Kalderon dijo

    Vaov! Ne güzel bir öğretici!
    Bash xD ile bu kadar çok şeyin yapılabileceğini düşünmemiştim
    Her gün daha fazlasını öğreniyorsun!
    Giriş için teşekkürler!
    Tarayıcım yok ama alırsam hemen deneyeceğim 🙂

  2.   hödük dijo

    Bu katkı notlarımın sayısallaştırılmasında bana ne kadar yardımcı olacak, umarım gelişir, tam bir dosyayı taramak ve taranan nesnenin boyutunu tespit etmek için bir işlev düşünüyorum, çünkü görüntü büyüsüne bağlıyız, djvu veya pdf'ye dönüştürülebilir ve böylece tek bir dosya oluşturulur. Ben sadece başıboş dolaştım. Katkılarınız için çok teşekkür ederim.

  3.   Sevdim dijo

    Ne büyük zevk, paylaştığınız için çok teşekkür ederim.