Σαρώστε ένα άλμπουμ φωτογραφιών με ένα σενάριο από τη γραμμή εντολών

Είναι σαφές ότι υπάρχουν πολλά γραφικές διεπαφές για σάρωση φωτογραφιών, που παρέχουν πολλές επιλογές. Αλλά όταν ο αριθμός των φωτογραφιών για σάρωση είναι μεγάλος και δεν έχουμε σαρωτή που διαθέτει αυτόματο τροφοδότη φύλλων, τα πράγματα γίνονται δύσκολα. Σε γενικές γραμμές πρέπει να κάνετε ένα κλικ για σάρωση, ένα άλλο κλικ ίσως στο άλλο άκρο του παραθύρου για αποθήκευση ... χρειάζεται χρόνος. Τέλος πάντων, μια καλή δικαιολογία για να χρησιμοποιήσετε το Γραμμή εντολών.

Αυτή είναι μια συνεισφορά του Rubén, καθιστώντας έτσι έναν από τους νικητές του εβδομαδιαίου διαγωνισμού μας: «Μοιραστείτε ό, τι γνωρίζετε για το Linux«. Συγχαρητήρια Rubén!

Διάβασα τα άρθρα Επεξεργασία παρτίδας με GIMP y Πώς να χειριστείτε εικόνες από το τερματικό, ακριβώς την ημέρα που ο φίλος μου Huguito μου ζήτησε τις φωτογραφίες (τις οποίες είχε χάσει) ενός ταξιδιού που κάναμε το 1989… (4 ρολά 36 φωτογραφιών! και σε χαρτί, φυσικά 🙂. Μου θύμισε αυτήν την συμβουλή για σάρωση φωτογραφιών που είχα ξεχάσει) .

Η ιδέα είναι να χρησιμοποιήσετε ένα σενάριο για να το κάνετε όσο το δυνατόν γρηγορότερα:

1.- Βάλτε μια φωτογραφία στο σαρωτή
2.- Πατήστε οποιοδήποτε πλήκτρο για σάρωση
3.- Επαναλάβετε τη διαδικασία, εκτός εάν το πατημένο πλήκτρο είναι για παράδειγμα ένα «n» για έξοδο
4.- Οι φωτογραφίες θα αποθηκευτούν και θα αριθμηθούν σε έναν προκαθορισμένο υποκατάλογο.

Ποια εντολή;

Η εντολή «μαγικό» είναι το scanimage που είναι μέρος του SANE. Το SANE είναι ένα API που παρέχει τυποποιημένη πρόσβαση σε οποιαδήποτε συσκευή απεικόνισης. Το Sane API βρίσκεται στον δημόσιο τομέα και ο πηγαίος κώδικας του είναι διαθέσιμος υπό την άδεια GNU General Public License.

Η εγκατάσταση είναι απλή. Κάθε διανομή φέρνει τα πακέτα της. Για το Ubuntu (ή τα παράγωγά του), αρκεί να χρησιμοποιήσετε synaptic και να εγκαταστήσετε sane και sane-utils.

Πώς να χρησιμοποιήσετε;

Πόσο πάντα το καλύτερο είναι να γράφεις σε ένα τερματικό «man scanimage». Ωστόσο, θα συνοψίσουμε τις επιλογές που θα χρησιμοποιήσουμε.

Ανοίγουμε ένα τερματικό και εκτελούμε το scanimage -L για να δούμε τις διαθέσιμες συσκευές:

σάρωση εικόνας -L

Στην περίπτωσή μου επιστρέφει:

Η συσκευή "xerox_mfp: libusb: 001: 005" είναι ένα περιφερειακό πολλαπλών λειτουργιών SAMSUNG ORION

Αυτό είναι το αποτέλεσμα που μου έδωσε με το Samsung SCX-4200 multifunction. Εάν διαθέτετε MFP και δεν μπορείτε να βρείτε τη συσκευή, βεβαιωθείτε ότι ο εκτυπωτής δεν είναι ενεργός, για παράδειγμα με εκτύπωση σε εκκρεμότητα.

Η τιμή «xerox_mfp: libusb: 001: 003» χρησιμοποιείται για να πει στην εντολή scanimage ποια συσκευή θα χρησιμοποιήσει μέσω της επιλογής -d. Εάν είναι συνδεδεμένος μόνο ένας σαρωτής, αυτή η επιλογή δεν είναι απαραίτητη.

Όταν η εντολή scanimage σαρώνει, στέλνει την προκύπτουσα εικόνα σε τυπική έξοδο σε μορφή pnm ή tiff. Έτσι, για σάρωση ανακατευθύνουμε την έξοδο σε ένα αρχείο. Και αν θέλουμε να δούμε ποια μηνύματα δίνει η εντολή, προσθέτουμε την επιλογή -v. Εάν θέλουμε επίσης να δούμε το ποσοστό προόδου της λειτουργίας προσθέτουμε την επιλογή -p.

scanimage -v -p> image.tiff

scanimage: εικόνα σάρωσης μεγέθους 1284x1734 pixel στα 24 bit / pixel
scanimage: απόκτηση πλαισίου RGB
σάρωση εικόνας: ελάχιστη / μέγιστη τιμή γκρίζου επιπέδου = 69/255
scanimage: διαβάστε συνολικά 6679368 byte
Πρόοδος: 13.8%

Τι θα μας δώσει αν κάνουμε σάρωση - βοήθεια; Φαίνεται προφανές, δίνει βοήθεια στην εντολή. Αλλά αυτή η εντολή έχει μια ιδιαιτερότητα. Στο τέλος της γενικής βοήθειας για την εντολή, προσθέστε τις συγκεκριμένες παραμέτρους που δέχεται ο σαρωτής σας.

σάρωση εικόνας - βοήθεια

Χρήση: scanimage [OPTION] ...

Μπλα μπλα....

Επιλογές ειδικά για τη συσκευή "xerox_mfp: libusb: 001: 005":

πρότυπο:
- ανάλυση 75 | 100 | 150 | 200 | 300 | 600dpi [150] Ορίζει την ανάλυση της σαρωμένης εικόνας.
--mode Lineart | Halftone | Γκρι | Χρώμα [Χρώμα] Επιλέγει τη λειτουργία σάρωσης (π.χ., γραμμικό, μονόχρωμο ή χρώμα).
- Highlight 30..70% (σε βήματα των 10) [ανενεργό] Επιλέξτε ελάχιστη φωτεινότητα για να πάρετε μια λευκή θέση
--source Flatbed | ADF | Auto [Flatbed] Επιλέγει την πηγή σάρωσης (όπως τροφοδότη εγγράφων).
γεωμετρία:
-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

Τρόπος

- Χρώμα τρόπου

Τώρα η γεωμετρία. Αυτό είναι πολύ χρήσιμο επειδή μπορούμε να πούμε στο σαρωτή να εξαγάγει μόνο την εικόνα ενός τομέα (όπου θα βάλουμε τη φωτογραφία) και εξοικονομούμε χρόνο σάρωσης της υπόλοιπης επιφάνειας που πρέπει επίσης να κόψουμε αργότερα με έναν επεξεργαστή γραφικών όπως το Gimp .

-l 0 ξεκινά τη σάρωση οριζόντια από 0 mm από την επάνω αριστερή γωνία του σαρωτή

-t 0 ξεκινά τη σάρωση κάθετα από 0 mm από την επάνω αριστερή γωνία του σαρωτή

Σημειώστε ότι επέλεξα να βάλω τη φωτογραφία στη γωνία του σαρωτή [συντεταγμένες (0,0)], καθώς είναι πιο εύκολο να το τοποθετήσετε. Στο σαρωτή μου (μέγεθος A4) μπορώ να πάω από 0 έως 215.9 και t από 0 έως 297.18.

Πλάτος και ύψος της φωτογραφίας. Στην περίπτωσή μου οι φωτογραφίες είναι 13x18cm:

-x πλάτος 180

-και 130 ψηλά

Επομένως, θα σαρώσει μόνο το μέρος όπου βάζουμε τη φωτογραφία μας. Φυσικά, αν συμφωνήσουμε για το τι είναι το αριστερό, το δεξί, το πλάτος, το ύψος, το πάνω και το κάτω μέρος. Θα εξαρτηθεί από το πώς κοιτάζετε το σαρωτή σας. Προτείνω να δοκιμάσετε τις συντεταγμένες και να τις προσαρμόσετε στις ανάγκες σας.

Ένα παράδειγμα της εντολής θα μπορούσε να είναι:

scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Color - ανάλυση 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. Υπάρχει μια επιλογή για την εντολή μετατροπής, έτσι ώστε αντί να τραβήξετε ένα αρχείο από το δίσκο θα μετατρέψει απευθείας την τυπική είσοδο. Αυτό επιτυγχάνεται με μια παύλα - αντί για το αρχείο:

μετατροπή - image.jpg

Δεδομένου ότι το scanimage παρέχει τη σαρωμένη εικόνα στην τυπική έξοδο, δημιουργούμε έναν "αγωγό" και αποθηκεύουμε τον χρόνο επεξεργασίας που απαιτείται για την εγγραφή και στη συνέχεια διαγράφουμε το αρχείο image.pnm από το δίσκο.

scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Color - ανάλυση 150 -l 0 -t 0 -x 180 -y 130 | μετατροπή - image.jpg

Τώρα ναι, το σενάριο ...

Γράφουμε τον ακόλουθο κώδικα σε ένα αρχείο που θα καλέσουμε scan-album.sh και του δίνουμε άδεια εκτέλεσης. Όταν το τρέξουμε, θα δημιουργήσει έναν υποκατάλογο όπου θα είναι οι σαρωμένες φωτογραφίες μας. Θυμηθείτε να τροποποιήσετε τις τιμές των παραμέτρων στις ανάγκες σας.

Φροντίστε να διαβάσετε μερικές προτάσεις μετά το σενάριο.

#! / bin / bash
# Δεδομένα για επιλογές

VERBOSE = "" # see status msg: "" is not; Το "-v" είναι ναι
PROGRESS = "- p" # show progress "" είναι όχι; Το "-p" είναι ναι

# Οι ακόλουθες παράμετροι δίνονται από το scanimage - βοήθεια για το σαρωτή σας
# Συσκευή: Εάν υπάρχει μόνο ένας σαρωτής, δεν είναι απαραίτητο, βάλτε DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"

DEV = ""
MODE = "- Χρώμα λειτουργίας"
ΨΗΦΙΣΜΑ = "- ανάλυση 600dpi"

# γεωμετρία, π.χ. φωτογραφία 130x180 mm
# θέση στον σαρωτή πάνω αριστεράς κορυφής

x0 = 0
y0 = 0
πλάτος = 180
υψηλή = 130

# επιλογές:

L = "- l $ x0"
T = "- t $ y0"
ΠΛΑΤΟΣ = "- x $ πλάτος"
ΥΨΗΛΟ = "- και $ υψηλό"

# όλες οι παράμετροι μαζί:

ΠΑΡΑΜΕΤΡΟΙ = "$ DEV $ VERBOSE $ PROGRESS $ MODE $ RESOLUTION $ L $ T $ WIDTH $ HIGH"

# Όνομα του άλμπουμ. Δημιουργήστε έναν υποκατάλογο με το όνομά σας:

ALBUM = "Διακοπές_1989"

# Για ασφάλεια, δεν κάνω τίποτα εάν ο κατάλογος υπάρχει ήδη

mkdir $ ALBUM

αν ["$?" = "1"]; τότε
έξοδος 100
fi

# Όνομα βάσης για φωτογραφίες (σε δευτ. Dir)

ΑΡΧΕΙΟ = "./" $ ALBUM "/" $ ALBUM "_foto_"

ερώτηση συνάρτησης () {
πέταξε έξω "------------------------------------------------ ------------------------- "
ηχώ
πέταξε έξω "******************************"
echo "Αριθμός σαρωμένων φωτογραφιών:" "$ I"
πέταξε έξω "******************************"
echo -e "Πατήστε: n * n για έξοδο * Ένα άλλο πλήκτρο για σάρωση."
ηχώ
read -s -n1 -p "Σάρωση νέας φωτογραφίας;" πλήκτρο
ηχώ
}

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

# Έναρξη

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

I = xnumx

ερώτηση

ενώ ["$ keypress"! = "n"]; κάνω
# νέα φωτογραφία για σάρωση
ας "I + = 1"
ΟΝΟΜΑ = $ FILE $ I
scanimage $ ΠΑΡΑΜΕΤΡΟΙ | μετατροπή - $ NAME.jpg
ερώτηση
γίνεται

Προτάσεις

Η χρήση υψηλών αναλύσεων όπως αυτές στο παράδειγμα καθιστά τη σάρωση πολύ πιο αργή.

Λάβετε υπόψη ότι εάν θέλετε να εκτυπώσετε μια φωτογραφία σε χαρτί χρειάζεστε περίπου 250 κουκκίδες ανά ίντσα. Εάν η ιδέα της σάρωσης των φωτογραφιών είναι να τις εκτυπώσετε στο ίδιο μέγεθος με το πρωτότυπο, αρκεί μια ανάλυση 250. Για να τις δείτε σε οθόνη με 100 αρκεί. Μια υψηλότερη ανάλυση θα χρησιμεύσει για μεγέθυνση.

Η στοίβα των φωτογραφιών πρέπει να προετοιμάζεται εκ των προτέρων, έτσι ώστε κάθε φωτογραφία να βρίσκεται στη δεξιά πλευρά. Με αυτόν τον τρόπο δεν θα σπαταλήσετε χρόνο να το βάλετε στο σαρωτή έτσι ώστε να μην περιστρέφονται 180º.

Κατά τη βαθμονόμηση των μετρήσεων των παραμέτρων γεωμετρίας, συνιστάται να παρατηρήσετε σε ποια θέση θα τοποθετήσετε το πρωτότυπο, έτσι ώστε οι ψηφιακές εικόνες να μην είναι "ανάποδες". Στην περίπτωσή μου το κάτω μέρος της φωτογραφίας πηγαίνει κατά μήκος του άξονα «l».

Εάν έχετε συνδέσει μόνο έναν σαρωτή, μη διστάσετε να χρησιμοποιήσετε την επιλογή -d. Στο σενάριο είναι DEV = »»

Μερικές φορές οι αριθμοί στο "xerox_mfp: libusb: 001: 003" αλλάζουν και θα πρέπει να τον τροποποιείτε κάθε φορά που χρησιμοποιείτε το σενάριο.

Προσέξτε για παύλες και εισαγωγικά κατά την αντιγραφή του σεναρίου. Οι παύλες (το σύμβολο μείον) μπορούν να είναι ένα ή δύο μαζί ανάλογα με την επιλογή. τα εισαγωγικά είναι το διπλό του πληκτρολογίου, δεν είναι αυτά που έθεσαν ορισμένοι επεξεργαστές κειμένου όπως το LibreOffice.

Για λόγους ασφαλείας, το σενάριο δεν δημιουργεί τον κατάλογο εάν υπάρχει ήδη, έτσι ώστε να μην αντικαθίστανται τα αρχεία εάν υπάρχουν. Σε αυτήν την περίπτωση σταματά.

Εάν το άλμπουμ φωτογραφιών είναι παλιό, μην λυπάστε εάν λείπουν οι εικόνες στα μαλλιά, τις ρυτίδες ή τα κιλά: -


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Juniors Καλντερόν dijo

    Ουάου! Τι καλό δάσκαλο!
    Δεν πίστευα ότι τόσα πολλά πράγματα θα μπορούσαν να γίνουν με το bash xD
    Κάθε μέρα μαθαίνετε περισσότερα!
    Ευχαριστώ για την είσοδο!
    Δεν έχω σαρωτή, αλλά αν το αποκτήσω, θα το δοκιμάσω αμέσως 🙂

  2.   Rube dijo

    Πόσο καλά αυτή η συνεισφορά θα με βοηθήσει πολύ στην ψηφιοποίηση των σημειώσεών μου, ελπίζω να βελτιωθεί, σκέφτομαι μια λειτουργία για σάρωση ενός πλήρους αρχείου και ανίχνευση του μεγέθους του σαρωμένου αντικειμένου, καθώς εξαρτάται από την εικόνα magick, μπορεί να μετατραπεί σε djvu ή pdf και έτσι δημιουργείτε ένα μόνο αρχείο. Λοιπόν ήμουν απλώς. Ευχαριστώ πολύ για τη συμβολή.

  3.   το λατρεύω dijo

    Τι μεγάλη χαρά, σας ευχαριστώ πολύ που μοιραστήκατε.