Хэрэв та яг над шиг Ubuntu зэрэг Linux тархац хэрэглэдэг, ялихгүй зүйлийн төлөө илүү дутуу програм суулгах дургүй, командын мөр буюу терминал дээр ажиллах дур сонирхолтой бол миний бие өөрийн хэрэглээ, хэрэгцээндээ үндэслэн бичсэн, цаашид ч өсөн нэмэгдэх энэхүү эмхэтгэл танд өчүүхэн ч атугай тус болж магадгүй. Мөн эдгээр тушаалыг зөвхөн Linux дээр л ашиглаж байсан. Иймд нэн ялангуяа Windows дээр ашиглах бол эхлээд туршиж шалгаарай.

Зурагнуудын хэмжээ өөрчлөх

mogrify -resize 1024x768 -quality 50 -path ./resized *.jpg

Дээрх тохиолдолд зургийн урт өргөний харьцаа хадгална. Хэрэв яг өгсөн харьцаатай зураг гаргана гэвэл уг тушаалын зохих хэсгийг 1024x768! гэж өөрчилнө. Урт эсвэл өргөнийг тогтмол нэг ижил хэмжээтэй, жишээлбэл 640 цэгийн урттай болгох бол зургийн хэмжээ заасан параметрийн утгыг 640x гэж өгнө. Харин урт ба өргөний дээд болон доод заагийг харгалзан 960x640> болон 380x210^ байдлаар өгнө.

Мөн хэрэв JPEG зургийн мета мэдээллийг зайлуулахыг хүсвэл тушаалдаа -strip гэсэн параметр нэмнэ.

Зургийн файлуудыг дугаарлаж нэрлэх

convert '*.png' -scene 1 %d.png

Хавтас дотор буй бүх PNG файлуудыг 1-ээс эхлүүлж 1, 2, ... , 10, 11 байдлаар дугаарлана. Хуучин файлууд хэвээр үлдэнэ. Хэрэв дугаарлалтыг 01 байдалтай болгохыг хүсвэл %02d гэж өгнө.

Зургийн файлуудыг DateTaken утгаар нь нэрлэх

Зургийн аппарат, гар утсаар дарсан, JPEG форматтай зурагнуудын нэрийг тухайн зураг дарсан огноо болон цагаар сольж өөрчлөхийн тулд дараах тушаал өгнө.

exiftool '-FileName<DateTimeOriginal' -d '%Y-%m-%d %H-%M-%S.%%le' .

Тушаалыг зургийн файлуудыг агуулж буй хавтасны хувьд өгөхийг анхаарна уу. Файлын "шинэ нэр" давхцах тохиолдолд файлын нэрийг хэвээр нь үлдээгээд анхааруулга өгнө. Харин нэр давхацсан тохиолдолд дараагийн файлуудыг дугаарлах байдлаар нэрлэе гэвэл дараах тушаал өгч болно.

exiftool '-FileName<DateTimeOriginal' -d '%Y-%m-%d %H-%M-%S%%-c.%%le' .

Дээрх команд нэг дор олноор дарсан түүхий болон JPEG зургийн файлуудыг нэрлэхдээ тэдгээр файлуудын харгалзааг алдуулах явдал гардаг. Ийм үед миллисекунд нэмж оруулсан дараах хувилбарыг ашиглаж болно.

exiftool -v '-Filename<${datetimeoriginal}${subsectimeoriginal;$_.=0 x(3-length)}.%e' -d %Y-%m-%d_%H-%M-%S .

DateTaken утга нь хоосон байгаа зурагнуудыг олж файлын нэр болон өөрчлөгдсөн огноог нь хэвлэх

exiftool -filemodifydate -r -if '(not $datetimeoriginal or ($datetimeoriginal eq "0000:00:00 00:00:00")) and ($filetype eq "JPEG")' .

Энд -r гэж рекурсив хайлтыг илэрхийлнэ.

Зургийн файлуудын DateTaken утгыг файлын нэрийн утгаар солих буюу шинээр оноох

Энд файлын нэрийг yyyy-mm-dd_hh-mm-ss-[number-if-conflict].extension форматтай гэж үзнэ. Жишээлбэл файлын нэр 2024-07-10_08-13-13.jpg байна.

exiftool "-datetimeoriginal<filename" −overwrite_original -d %Y-%m-%d_%H-%M-%S%%-c.%%e -S -m -ee -progress -q -q ./

Зургийн файлуудын DateTaken утгыг файлын DateModified утгаар солих буюу шинээр оноох

Жишээлбэл Facebook дээр хүмүүсийн шейрлэсэн зурагнуудыг татаж аваад үзэхэд "DateTimeOriginal" утга нь арчигдсан байдаг. Иймэрхүү тохиолдолд дараах байдлаар үүнийг нөхөж өгч болох юм.

exiftool '-datetimeoriginal<filemodifydate' -if '(not $datetimeoriginal or ($datetimeoriginal eq "0000:00:00 00:00:00")) and ($filetype eq "JPEG")' .

Зургийн файлын DateTaken утгыг нэмж хасах болон өөрчлөх эсвэл шинээр оноох

exiftool "-DateTimeOriginal+=0:0:0 0:0:1" filename.jpg

Дээрх тохиолдолд зураг дарсан огноо ба цагийг 1 секундээр хойшлуулж байна. Мөн "DateTimeOriginal" утгаас гадна "ModifyDate" болон "CreateDate" утгуудыг бүгдийг нь өөрчлөх бол дараах хэлбэртэй тушаал өгнө.

exiftool "-AllDates+=Y:M:D h:m:s" filename.jpg

Хэрэв хавтас доторх бүх зургийн хувьд тушаал өгөх бол filename.jpg гэсний оронд . (цэг) бичнэ.

Харин утга өөрчлөх эсвэл шинээр оноох бол += гэснийг = гэнэ.

Зургийн файлуудыг PDF формат руу хөрвүүлж нэгтгэх

convert "*.{jpeg,jpg,png,gif}" -quality 70 outfile.pdf

Энэ тохиолдолд зургийн чанар алдагдах, санах ой ашиглалтын хэмжээ хязгаартай холбоотой алдаа гарах зэрэг хүндрэл учирдаг. Үүнийг img2pdf болон pdftk програмуудын тусламжтай шийдвэрлэх хялбар арга зам бий. Эхлээд дараах тушаалаар зургийн бүх файлуудаа pdf файл болгоно.

ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf

Улмаар дараах тушаалаар pdf файлыг нийлүүлж нэг файл болгоно.

pdftk *.pdf cat output combined.pdf

Энд шинээр үүсэх файлын нэрийг combined.pdf гэж өгөв.

Бонус Англи хэлээр бичсэн номыг скайнердаж аваад ашиглах явдал түгээмэл байдаг. Тийм pdf файлын агуулга нь текст биш зураг байх тул pdf үзүүлэгч програмуудын ердийн текст хайгч ашиглах боломжгүй болдог. Үүнийг боломжтой болгохын тулд OCR (Optical Character Recognition) хийх шаардлагатай. Үүнд ашиглах боломжтой програмуудын нэг бол ocrmypdf юм. Өгөх тушаал буюу програмыг дуудаж ажиллуулах байдал ocrmypdf mybook_scanned.pdf mybook_ocr.pdf байна.

PDF файлыг зурган PDF файл болгох

convert -density 125 input.pdf output.pdf

Энэ бол PDF файлын текстийг хуулах боломжийг бууруулах нэг арга юм. Нягтралыг багасгах замаар OCR програмаар уншуулахад олигтой танигдахааргүй бүрсгэр болгох боломжтой. PDF файл доторх хуудсууд бүгд зураг болох тул файлын хэмжээ нэлээд ихэснэ.