סרוק אלבום תמונות עם סקריפט משורת הפקודה

ברור שיש כמה ממשקים גרפיים לסריקת תמונות, המספקות אפשרויות רבות. אך כאשר מספר התמונות לסריקה גדול ואין לנו סורק שמזין גיליונות אוטומטיים, הדברים נעשים קשים. באופן כללי אתה צריך לעשות לחיצה כדי לסרוק, לחיצה נוספת אולי בקצה השני של החלון כדי לחסוך ... זה לוקח זמן. בכל מקרה, תירוץ טוב להשתמש ב- שורת פיקוד.

זוהי תרומה של רובן, ובכך הופכת לאחת הזוכות בתחרות השבועית שלנו: «שתף את מה שאתה יודע על לינוקס«. מזל טוב רובן!

קראתי את המאמרים על עיבוד תמונות אצווה עם GIMP y כיצד לתפעל תמונות מהטרמינל, בדיוק ביום בו ידידי הוגיטו ביקש ממני את התמונות (שאיבד) של טיול שעשינו בשנת 1989 ... (4 גלילים של 36 תמונות! ועל הנייר, כמובן 🙂. זה הזכיר לי את הטיפ הזה לסרוק תמונות ששכחתי. .

הרעיון הוא להשתמש בתסריט כדי לעשות זאת מהר ככל האפשר:

1.- שים תמונה על הסורק
2.- לחץ על מקש כלשהו כדי לסרוק
3.- חזור על הנוהל, אלא אם כן המקש שנלחץ הוא למשל 'n' כדי לצאת
4.- התמונות יאוחסנו ויספרו בספריית משנה שהוקמה מראש.

איזו פקודה?

הפקודה 'קסם' היא scanimage שהיא חלק מ- SANE. SANE הוא API המספק גישה סטנדרטית לכל מכשיר הדמיה. ה- API של Sane נמצא ברשות הרבים וקוד המקור שלו זמין ברישיון GNU General Public.

ההתקנה פשוטה. כל הפצה מביאה את החבילות שלה. עבור אובונטו (או הנגזרות שלה), מספיק להשתמש בסינפטי ולהתקין כלים שפויים ושפויים.

איך להישתמש?

כמה תמיד הכי טוב לכתוב בטרמינל 'גבר סריקת תמונה'. עם זאת, נסכם את האפשרויות בהן נשתמש.

אנו פותחים מסוף ומריצים את scanimage -L כדי לראות את המכשירים הזמינים:

scanimage -L

במקרה שלי הוא חוזר:

מכשיר 'xerox_mfp: libusb: 001: 005' הוא ציוד היקפי רב-פונקציוני של SAMSUNG ORION

זו התוצאה שהיא נתנה לי עם ה- SCX-4200 הרב-תכליתי של סמסונג. אם יש לך MFP ואינך יכול למצוא את ההתקן, ודא שהמדפסת אינה פעילה, למשל עם הדפסה בהמתנה.

הערך 'xerox_mfp: libusb: 001: 003' משמש כדי לספר לפקודת scanimage באיזה מכשיר להשתמש באמצעות האפשרות -d. אם רק סורק אחד מחובר, אפשרות זו אינה נחוצה.

כאשר פקודת scanimage סורקת, היא שולחת את התמונה המתקבלת לפלט רגיל בפורמט pnm או tiff. אז כדי לסרוק אנחנו מפנים את הפלט לקובץ. ואם אנו רוצים לראות אילו הודעות נותנת הפקודה, אנו מוסיפים את האפשרות -v. אם אנו רוצים לראות גם את אחוז ההתקדמות של הפעולה, אנו מוסיפים את האפשרות -p.

scanimage -v -p> image.tiff

scanimage: סריקת תמונה בגודל 1284x1734 פיקסלים ב 24 סיביות / פיקסל
scanimage: רכישת מסגרת RGB
scanimage: ערך אפור מינימלי / מקסימלי = 69/255
scanimage: קרא 6679368 בתים בסך הכל
התקדמות: 13.8%

מה זה ייתן לנו אם נעשה סריקת תמונות - עזרה? זה נראה ברור מאליו, זה נותן עזרה בפקודה. אך לפקודה זו יש ייחוד. בסוף העזרה הגנרית לפקודה הוסף את הפרמטרים הספציפיים שהסורק שלך מקבל.

scanimage - עזרה

שימוש: scanimage [OPTION] ...

בלה בלה....

אפשרויות ספציפיות למכשיר 'xerox_mfp: libusb: 001: 005':

תֶקֶן:
- רזולוציה 75 | 100 | 150 | 200 | 300 | 600 dpi [150] קובע את הרזולוציה של התמונה הסרוקה.
--mode Lineart | Halftone | אפור | Color [Color] בוחר את מצב הסריקה (למשל, lineart, monochrome או color).
- הדגש 30..70% (בשלבים של 10) [לא פעיל] בחר בהירות מינימלית כדי לקבל נקודה לבנה
- source source Flatbed | ADF | Auto [Flatbed] בוחר את מקור הסריקה (כגון מזין מסמכים).
גיאומטריה:
-l 0..215.9 מ"מ (בשלבים של 1) [0] מיקום עליון שמאלי למעלה x של אזור הסריקה.
-t 0..297.18 מ"מ (בשלבים של 1) [0] שמאל למעלה ומיקום אזור הסריקה.
-x 0..215.9 מ"מ (בשלבים של 1) [215.9] רוחב אזור הסריקה.
-y 0..297.18 מ"מ (בשלבים של 1) [297.18] גובה אזור הסריקה.

הקלד "scanimage --help -d DEVICE" כדי לקבל רשימה של כל האפשרויות עבור DEVICE.

רשימת המכשירים הזמינים:

xerox_mfp: libusb: 001: 005

מכאן נוכל לבחור את האפשרויות עם הערכים שבהם אנו יכולים להשתמש.

לדוגמה:

Resolución

–רזולוציה 150

מודו

–מצב צבע

עכשיו הגיאומטריה. זה מאוד שימושי מכיוון שנוכל לומר לסורק לחלץ רק את התמונה של מגזר אחד (שם נכניס את התצלום), ואנחנו חוסכים את זמן הסריקה של שאר המשטח שעלינו גם לגזור אחר כך עם עורך גרפי כמו Gimp .

-l 0 מתחיל לסרוק אופקית מ- 0 מ"מ מהפינה השמאלית העליונה של הסורק

-t 0 מתחיל לסרוק אנכית מ- 0 מ"מ מהפינה השמאלית העליונה של הסורק

שימו לב שבחרתי לשים את התצלום בפינת הסורק [קואורדינטות (0,0)], מכיוון שקל יותר למקם אותו. בסורק שלי (גודל A4) אני יכול לעבור בין 0 ל 215.9 ו- t מ 0 ל 297.18.

רוחב התצלום וגובהו. במקרה שלי התמונות בגודל 13x18 ס"מ:

-רוחב 180

וגובה 130

לכן זה יסרוק רק את החלק בו שמנו את התמונה שלנו. כמובן שאם נסכים מהו השמאל, הימין, הרוחב, הגובה, החלק העליון והתחתון. זה יהיה תלוי איך אתה מסתכל על הסורק שלך. אני מציע לבדוק את הקואורדינטות ולהתאים אותם לצרכים שלך.

דוגמה לפקודה יכולה להיות:

scanimage -d xerox_mfp: libusb: 001: 003 -p - מצב צבע - רזולוציה 150 -l 0 -t 0 -x 180 -y 130> image.pnm

עם אפשרויות אלה, כבר נוכל לבנות את הסקריפט שלנו.

אבל לפני…

טיף או 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 - מצב צבע - רזולוציה 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 - עזרה לסורק שלך
#Device: אם יש רק סורק אחד, אין צורך, שים DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"

DEV = ""
MODE = "- צבע מצב"
RESOLUTION = "- רזולוציה 600 dpi"

# גיאומטריה, למשל תמונה בגודל 130x180 מ"מ
# מיקום בסורק הקודקוד השמאלי העליון

x0 = 0
y0 = 0
רוחב = 180
גבוה = 130

#אפשרויות:

L = "- l $ x0"
T = "- t $ y0"
WIDTH = "- x $ רוחב"
HIGH = "- ו- $ high"

# כל הפרמטרים ביחד:

PARAMETERS = "$ DEV $ VERBOSE $ PROGRESS $ MODE $ RESOLUTION $ L $ T $ WIDTH $ HIGH"

# שם האלבום. צור ספריית משנה עם שמך:

ALBUM = "חגים_1989"

# ליתר ביטחון אני לא עושה דבר אם הספריה כבר קיימת

mkdir $ ALBUM

אם ["$?" = "1"]; לאחר מכן
צא מ- 100
fi

# שם בסיס לתמונות (בתת-dir)

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

שאלה פונקציה () {
זרק "------------------------------------------------ ------------------------- "
הד
זרק "******************************"
הד "מספר תמונות סרוקות:" "$ I"
זרק "******************************"
הד -e "לחץ: n * n כדי לצאת * מקש נוסף לסריקה."
הד
קרא -s -n1 -p "סרוק תמונה חדשה?" לחץ על מקש
הד
}

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

# התחל

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

I = xnumx

pregunta

בעוד ["$ מקש לחיצה"! = "n"]; לַעֲשׂוֹת
תמונה חדשה לסריקה
תן ל- "I + = 1"
שם = $ FILE $ I
scanimage $ PARAMETERS | להמיר - $ NAME.jpg
pregunta
עשה

הצעות

שימוש ברזולוציות גבוהות כמו זו שבדוגמה הופך את הסריקה לאט הרבה יותר.

זכור שאם אתה רוצה להדפיס תמונה על נייר אתה צריך כ -250 נקודות לאינץ '. אם הרעיון של סריקת התמונות הוא להדפיס אותם בגודל המקורי, די ברזולוציה של 250. כדי לראות אותם על צג עם 100 זה מספיק. רזולוציה גבוהה יותר תשמש להגדלה.

יש להכין את ערימת התמונות מראש כך שכל תמונה תהיה בצד ימין. באופן זה לא תבזבז זמן על הכנסתו לסורק כדי שלא יסובבו 180 מעלות.

בעת כיול מדידות הפרמטרים הגיאומטריים, רצוי לצפות באיזה מיקום למקם את המקור, כך שהתמונות הדיגיטליות לא יהיו "הפוכות". במקרה שלי החלק התחתון של התצלום עובר לאורך ציר ה- 'l'.

אם יש לך רק סורק אחד מחובר אל תהסס לא להשתמש באפשרות -d. בתסריט זה DEV = »»

לפעמים המספרים ב- "xerox_mfp: libusb: 001: 003" משתנים ותצטרך לשנות את זה בכל פעם שאתה משתמש בסקריפט.

היזהר ממקפים וציטוטים בעת העתקת התסריט. המקפים (סימן המינוס) יכולים להיות אחד או שניים יחד בהתאם לאפשרות; המרכאות הן הכפול של המקלדת, הם לא אלה שמעבירים תמלילים כמו LibreOffice מציבים.

ליתר ביטחון, הסקריפט לא יוצר את הספריה אם היא כבר קיימת, כדי לא להחליף קבצים אם יש כאלה. במקרה זה זה מפסיק.

אם אלבום התמונות ישן, אל תצטער אם התמונות שופעות בשיער, בקמטים או בקילו חסרים: -


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

3 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   ג'וניורס קלדרון דיג'ו

    וואו! איזה טוטו טוב!
    לא חשבתי שאפשר לעשות כל כך הרבה דברים עם xD של bash
    כל יום לומדים יותר!
    תודה על הקלט!
    אין לי Scaner אבל אם אקבל אחד, אני אנסה אותו מיד 🙂

  2.   Rube דיג'ו

    כמה טוב תרומה זו תעזור לי רבות בדיגיטציה של ההערות שלי, אני מקווה שהיא תשתפר, אני חושבת על פונקציה לסרוק קובץ שלם ולזהות את גודל האובייקט הסרוק, מכיוון שאנו תלויים בתמונת magick, ניתן להמיר אותו ל- djvu או pdf וכך ליצור קובץ יחיד. ובכן פשוט הסתובבתי. תודה רבה על התרומה.

  3.   עדו אלו דיג'ו

    איזה תענוג גדול, תודה רבה על השיתוף.