Imbas album foto dengan skrip dari baris arahan

Jelas terdapat beberapa antara muka grafik untuk mengimbas foto, yang memberikan banyak pilihan. Tetapi apabila jumlah gambar untuk diimbas adalah besar dan kita tidak mempunyai pengimbas yang mempunyai pengumpan helaian automatik, semuanya menjadi sukar. Secara amnya anda harus melakukan satu klik untuk mengimbas, satu lagi klik mungkin di hujung tetingkap lain untuk menjimatkan ... memerlukan masa. Bagaimanapun, alasan yang baik untuk menggunakan Garis arahan.

Ini adalah sumbangan dari Rubén, sehingga menjadi salah satu pemenang pertandingan mingguan kami: «Kongsi apa yang anda tahu mengenai Linux«. Tahniah Rubén!

Saya membaca artikel di Pemprosesan Batch Image dengan GIMP y Cara memanipulasi gambar dari terminal, hanya pada hari di mana rakan saya Huguito meminta saya untuk gambar (yang telah hilang) dari perjalanan yang kami lakukan pada tahun 1989 ... (4 gulungan 36 foto! dan di atas kertas, tentu saja 🙂. Ia mengingatkan saya tentang tip ini untuk mengimbas gambar yang saya lupakan.

Ideanya adalah menggunakan skrip untuk melakukannya secepat mungkin:

1.- Letakkan foto di pengimbas
2.- Tekan sebarang kekunci untuk mengimbas
3.- Ulangi prosedur, kecuali kekunci yang ditekan misalnya 'n' untuk keluar
4.- Foto akan disimpan dan dinomborkan dalam subdirektori yang telah ditetapkan.

Perintah apa?

Perintah 'magic' adalah scanimage yang merupakan sebahagian dari SANE. SANE adalah API yang menyediakan akses standard ke mana-mana peranti pengimejan. API Sane berada dalam domain awam dan kod sumbernya tersedia di bawah Lesen Awam Umum GNU.

Pemasangannya mudah. Setiap pengedaran membawa bungkusannya. Untuk Ubuntu (atau turunannya), cukup menggunakan sinaptik dan memasang alat waras dan waras.

Bagaimana nak guna?

Selalunya yang terbaik adalah menulis di terminal 'man scanimage'. Walau bagaimanapun, kami akan merangkum pilihan yang akan kami gunakan.

Kami membuka terminal dan menjalankan scanimage -L untuk melihat peranti yang ada:

imbasan imbasan -L

Dalam kes saya kembali:

peranti `xerox_mfp: libusb: 001: 005 'adalah periferal pelbagai fungsi SAMSUNG ORION

Inilah hasil yang diberikan kepada saya dengan Samsung SCX-4200 multifungsi saya. Sekiranya anda mempunyai all-in-one dan anda tidak dapat mencari peranti, pastikan pencetak tidak aktif, misalnya dengan cetakan yang belum selesai.

Nilai 'xerox_mfp: libusb: 001: 003' digunakan untuk memberitahu perintah scanimage peranti mana yang akan digunakan melalui pilihan -d. Sekiranya hanya satu pengimbas yang disambungkan, pilihan ini tidak diperlukan.

Apabila arahan scanimage scan, ia mengirimkan gambar yang dihasilkan ke output standard dalam format pnm atau tiff. Oleh itu, untuk mengimbas, kami mengalihkan output ke fail. Dan jika kita ingin melihat mesej apa yang diberikan perintah, kita menambah pilihan -v. Sekiranya kita juga ingin melihat peratusan kemajuan operasi kita tambahkan pilihan -p.

scanimage -v -p> image.tiff

scanimage: imbasan gambar berukuran 1284x1734 piksel pada 24 bit / piksel
scanimage: memperoleh bingkai RGB
imbasan gambar: nilai tahap minimum / maksimum kelabu = 69/255
imbasan gambar: baca keseluruhan 6679368 bait
Kemajuan: 13.8%

Apa yang akan diberikan kepada kita jika kita mengimbas gambar - membantu? Nampak jelas, ia memberi pertolongan pada perintah. Tetapi perintah ini mempunyai keanehan. Pada akhir bantuan generik untuk perintah tersebut, tambahkan parameter khusus yang diterima oleh pengimbas anda.

imbasan imbasan --membantu

Penggunaan: imbasan imbasan [PILIHAN] ...

BLA bla ....

Pilihan khusus untuk peranti `xerox_mfp: libusb: 001: 005 ':

standard:
- penyelesaian 75 | 100 | 150 | 200 | 300 | 600dpi [150] Menetapkan resolusi gambar yang diimbas.
--mode Lineart | Halftone | Abu-abu | Warna [Warna] Memilih mod imbasan (contohnya, garis barisan, monokrom, atau warna).
--sorotan 30..70% (dalam langkah 10) [tidak aktif] Pilih kecerahan minimum untuk mendapatkan titik putih
--sumber Flatbed | ADF | Auto [Flatbed] Memilih sumber imbasan (seperti pengumpan dokumen).
Geometri:
-l 0..215.9mm (dalam langkah 1) [0] Bahagian kiri x atas kawasan imbasan.
-t 0..297.18mm (dalam langkah 1) [0] Kiri atas dan kedudukan kawasan imbasan.
-x 0..215.9mm (dalam langkah 1) [215.9] Lebar luas imbasan.
-y 0..297.18mm (dalam langkah 1) [297.18] Tinggi kawasan imbasan.

Ketik "scanimage --help -d DEVICE" untuk mendapatkan senarai semua pilihan untuk DEVICE.

Senarai peranti yang ada:

xerox_mfp: libusb: 001: 005

Dari sini kita boleh memilih pilihan dengan nilai yang boleh kita gunakan.

Contoh:

Resolusi

- Penyelesaian 150

Cara

–Mode Warna

Sekarang geometri. Ini sangat berguna kerana kita dapat memberitahu pengimbas untuk hanya mengekstrak gambar sektor (di mana kita akan meletakkan foto), dan kita menjimatkan masa untuk mengimbas seluruh permukaan yang harus kita potong kemudian dengan penyunting grafik seperti itu sebagai Gimp.

-l 0 mula mengimbas secara mendatar dari 0 mm dari sudut kiri atas pengimbas

-t 0 mula mengimbas secara menegak dari 0 mm dari sudut kiri atas pengimbas

Perhatikan bahawa saya memilih untuk meletakkan foto di sudut pengimbas [koordinat (0,0)], kerana lebih mudah diletakkan. Pada pengimbas saya (saiz A4) saya boleh pergi dari 0 hingga 215.9 dan t dari 0 hingga 297.18.

Lebar dan Tinggi gambar. Dalam kes saya, gambarnya berukuran 13x18cm:

-x 180 lebar

-dan 130 tinggi

Oleh itu, ia hanya akan mengimbas bahagian tempat kita meletakkan gambar kita. Sudah tentu, jika kita bersetuju tentang apa yang kiri, kanan, lebar, tinggi, atas dan bawah. Itu bergantung pada bagaimana anda melihat pengimbas anda. Saya cadangkan untuk menguji koordinat dan menyesuaikannya dengan keperluan anda.

Contoh arahannya ialah:

scanimage -d xerox_mfp: libusb: 001: 003 -p --Mode Colour - penyelesaian 150 -l 0 -t 0 -x 180 -y 130> gambar.pnm

Dengan pilihan ini, kita sudah dapat membina skrip kita.

Tetapi sebelum…

Tiff atau pnm adalah format yang tidak dimampatkan, jadi foto kami akan memakan ruang cakera yang besar. Di sinilah arahan menukar ImageMagick masuk yang dijelaskan dalam Cara memanipulasi gambar dari terminal.

Sekiranya kita mendapat image.pnm dari pengimbas, kita boleh menukarnya menjadi jpg:

tukar gambar.pnm gambar.jpg

Tetapi sebelum melakukannya, satu lagi muslihat:

Image.pnm memakan banyak ruang dan kita harus menghapusnya setelah mendapatkan gambar kita.jpg. Terdapat pilihan untuk perintah tukar sehingga daripada mengambil fail dari cakera, ia akan langsung menukar input standard. Ini dicapai dengan tanda hubung - bukannya fail:

menukar - image.jpg

Oleh kerana scanimage memberikan gambar yang dipindai ke output standard, kami membuat "saluran paip" dan menjimatkan masa pemprosesan yang diperlukan untuk menulis dan kemudian menghapus fail image.pnm dari cakera.

scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Colour - penyelesaian 150 -l 0 -t 0 -x 180 -y 130 | menukar - image.jpg

Sekarang ya, skrip ...

Kami menulis kod berikut dalam fail yang akan kami panggil scan-album.sh dan kami memberikannya izin pelaksanaan. Apabila kita menjalankannya, ia akan membuat subdirektori di mana foto yang diimbas akan berada. Ingatlah untuk mengubah nilai parameter untuk keperluan anda.

Pastikan anda membaca beberapa cadangan selepas skrip.

#! / Bin / Bash
# Data untuk pilihan

VERBOSE = "" # lihat status msg: "" tidak; "-v" adalah ya
PROGRESS = "- p" # tunjukkan kemajuan "" adalah tidak; "-p" adalah ya

# Parameter berikut diberikan oleh scanimage --bantu pengimbas anda
#Device: Jika hanya ada satu pengimbas, tidak perlu, letakkan DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"

DEV = ""
MODE = "- Warna mod"
RESOLUSI = "- resolusi 600dpi"

#geometri, contohnya foto 130x180 mm
#lokasi di pengimbas bucu kiri atas

x0 = 0
y0 = 0
lebar = 180
tinggi = 130

#pilihan:

L = "- l $ x0"
T = "- t $ y0"
WIDTH = "- x $ lebar"
TINGGI = "- dan $ tinggi"

# semua parameter bersama:

PARAMETER = "$ DEV $ VERBOSE $ PROGRESS $ MODE $ RESOLUTION $ L $ T $ WIDTH $ TINGGI"

# Nama album. Buat subdirektori dengan nama anda:

ALBUM = "Cuti_1989"

# Untuk keselamatan, saya tidak melakukan apa-apa jika direktori sudah ada

mkdir $ ALBUM

jika ["$?" = "1"]; kemudian
jalan keluar 100
fi

# Nama asas untuk foto (dalam sub dir)

FILE = "./" $ ALBUM "/" $ ALBUM "_foto_"

soalan fungsi () {
membuang "----------------------------------------------- - ------------------------- "
echo
membuang "******************************"
echo "Jumlah foto yang diimbas:" "$ I"
membuang "******************************"
echo -e "Tekan: n * n untuk keluar * Kekunci lain untuk mengimbas."
echo
baca -s -n1 -p "Imbas foto baru?" tekan kekunci
echo
}

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

# Mulakan

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

Saya = 0

tanya

sementara ["$ keypress"! = "n"]; buat
# foto baru untuk diimbas
biarkan "I + = 1"
NAMA = $ FILE $ I
imbasan gambar $ PARAMETER | tukar - $ NAME.jpg
tanya
dilakukan

Cadangan

Menggunakan resolusi tinggi seperti yang dibuat dalam contoh menjadikan imbasan menjadi lebih perlahan.

Perlu diingat bahawa jika anda ingin mencetak foto di atas kertas, anda memerlukan sekitar 250 titik per inci. Sekiranya idea untuk mengimbas foto adalah mencetaknya pada ukuran yang sama dengan aslinya, resolusi 250 cukup. Untuk melihatnya di monitor, 100 sudah cukup. Resolusi yang lebih tinggi akan memberikan pembesaran.

Tumpukan foto harus disediakan terlebih dahulu supaya setiap foto berada di sebelah kanan. Dengan cara ini anda tidak akan membuang masa memasukkannya ke dalam pengimbas supaya tidak dipusingkan 180º.

Semasa mengkalibrasi pengukuran parameter geometri, disarankan untuk memerhatikan di mana kedudukan asalnya harus diletakkan, sehingga gambar digital tidak "terbalik". Dalam kes saya, bahagian bawah foto berada di sepanjang paksi 'l'.

Sekiranya anda hanya mempunyai satu pengimbas yang disambungkan, jangan gunakan pilihan -d. Dalam skripnya adalah DEV = »»

Kadang-kadang nombor berubah dalam "xerox_mfp: libusb: 001: 003" dan anda harus mengubahnya setiap kali anda menggunakan skrip.

Awas tanda hubung dan petikan semasa menyalin skrip. Tanda sempang (tanda tolak) boleh menjadi satu atau dua bersamaan bergantung pada pilihan; tanda petik adalah dua kali ganda papan kekunci, bukan tanda petik yang digunakan oleh beberapa pemproses kata seperti LibreOffice.

Untuk keselamatan, skrip tidak membuat direktori jika sudah ada, agar tidak menimpa fail jika ada. Dalam kes itu berhenti.

Sekiranya album foto sudah lama, jangan menyesal jika gambar-gambar rambut, kerutan atau kilo hilang: -


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Calderon Junior kata

    Wah! Apa tuto yang bagus!
    Saya tidak menyangka bahawa banyak perkara boleh dilakukan dengan bash xD
    Setiap hari anda belajar lebih banyak!
    Terima kasih atas input!
    Saya tidak mempunyai Scaner tetapi jika saya mendapatkannya, saya akan segera mencubanya

  2.   Rube kata

    Sejauh mana sumbangan ini dapat banyak membantu saya dalam pendigitalan nota saya, saya harap ia bertambah baik, saya memikirkan fungsi untuk mengimbas fail yang lengkap dan mengesan ukuran objek yang diimbas, kerana kita bergantung pada gambar magick, ia dapat ditukar menjadi djvu atau pdf dan dengan itu membuat satu fail. Saya baru sahaja berjalan. Terima kasih banyak atas sumbangan.

  3.   sukakannya kata

    Apa keseronokan, terima kasih banyak untuk berkongsi.