پردازش خودکار تصاویر

تابه‌حال برایتان پیش آمده که تازه از یک سفر کوتاه برگشته‌اید، دوربین دیجیتال‌تان را از کیف درآورده‌اید عکس‌هایتان را بایگانی کنید. به احتمال زیاد باید فایل‌ها را تغییر نام دهید یا گاهی اوقات آن‌ها را 90 درجه بچرخانید تا در استفاده بعدی به‌راحتی آن‌ها را بیابید.
کد خبر: ۲۲۳۸۰۶

فرض بگیریم که می‌خواهید برای تک‌تک فایل‌ها هم تاریخ و مکان تصاویر را قرار دهید که اگر آن‌ها را به اشتراک گذاشتید، موتورهای نرم‌افزاری هم بتوانند آن‌ها را از هم تشخیص دهند. ‌حالا با کمک ابزاری که در ادامه معرفی می‌کنیم، شما دیگر نگران از بین رفتن کیفیت تصاویر ‌jpeg‌. نیز نخواهید بود. تصاویر ‌jpeg‌.  تصاویر فشرده‌ای هستند که بخش‌های زیادی از داده‌های موجود در عکس را به‌خاطر این‌که توسط چشم قابل دیدن نیستند، حذف می‌کنند.
برخی از دوربین‌های دیجیتال، یک تصویر بندانگشتی هم ضمیمه فایل می‌کنند. این ابزار این تصاویر را هم می‌چرخاند بدون آن‌که آن را مجدد فشرده‌سازی کنند.  تنها نکته‌ای که باید به آن توجه نشان بدهید، پشتیبانی دوربین دیجیتال شما از  .exif‌‌(فرمت تصویری قابل تبدیل) است. در صورتی که دوربین شما از این ویژگی پشتیبانی می‌کند، در این صورت تنظیمات مرتبط با جهت قرارگیری عکس را نیز در فایل قرار می‌دهد. ‌ ‌

‌Exiftool‌

این ابزار در کتابخانه پرل ‌(Perl‌)، در ‌Image::ExifTool‌ واقع است و کارش خواندن و نوشتن اطلاعات فراداده ‌(Metadata)‌ در فایل‌های عکس و صدا و فیلم است. اگر به راهنمای آن رجوع کنید، از تمامی فرمت‌هایی که این ابزار پشتیبانی می‌کند، مطلع می‌شوید و حتما خواهید دید که از ‌.jpeg‌ و ‌.raw‌ هم پشتیبانی می‌کند. ‌ ‌

با ‌exiftool‌ می‌توانید هر جور که بخواهید با عکس‌هایتان برخورد کنید، فایل‌های جدید را جایگزین فایل‌های قبلی کنید یا به خروجی استاندارد نشان بدهید یا در دایرکتوری مقصد کپی کنید. در «حالت فیلتر» تصاویر می‌توانند به خروجی استاندارد نشان داده شوند، یا با کمک گزینه ‌‌-w‌ داخل فایل نوشته شوند.

‌مثال زیر، تصویر بندانگشتی ضمیمه شده در فایل ‌image.jpg‌ را بیرون می‌کشد. مثال دوم، فیلد نظرات را از فایل بیرون می‌کشد. توجه داشته باشید که بعد از اجرای دستور دوم، فایل تصویر اصلی در فایل ‌image.jpg_original‌ قرار دارد. دستور سوم، فایل اصلی را حذف می‌کند. دستور آخر نیز نظرات فایل را تغییر می‌دهد، اما با توجه به حضور ‌-overwrite_original‌، دیگر فایل ‌image.jpg_original‌‌تولید نخواهد شد.

‌ exiftool -b -ThumbnailImage

  image.jpg > thumbnail.jpg   
 exiftool -Co mment='This is a $
new comment' image.jpg  
rm -f image.jpg_original $
exiftool -Comment='This is a second $
 comment' -overwrite_original image.jpg  

پروژه‌‌renrot‌ نامسسس خود را از کلمه‌های ‌ "rename"‌(تغییر نام) و ‌ "rotate"‌(چرخاندن) گرفته است که دو هدف اصلی این پروژه به حساب می‌آید. چرخاندن تصاویر فقط برای فرمت ‌JPEG‌ ممکن است. ویژگی‌های دیگر ‌renrot‌ شامل سوا کردن تصاویر در دایرکتوری‌های مختلف، بسته به تصاویری که گرفته شده‌اند و تغییر نظرات ضمیمه شده در هر فایل می‌شود.

به‌صورت پیش‌فرض در دو توزیع محبوب لینوکس (اوبونتو و فدورا9) این ابزار نصب شده است، اما برای توزیع‌های دیگر بایستی خودتان دست به‌کار شوید. اگر بخواهید از دستور ‌renrot‌ استفاده کنید، اما هیچ آرگومانی به آن پاس ندهید، به شما پیغام خطا می‌دهد و حداقل فرمت فایل را از شما می‌خواهد. فرمت فایل به کوچکی و بزرگی حروف حساس است، بنابراین اگر پسوند نام فایل‌هایتان بزرگ و کوچک دارد، از ‌iextension استفاده کنید تا به کوچکی و بزرگی حروف حساسیت نشان ندهد. در مثال زیر، اجرای دستور اول با شکست روبه‌رو می‌شود، اما دستور دوم در دایرکتوری فعلی، تمام فایل‌هایی که پسوند .‌jpg‌ دارند را تغییر نام می‌دهد و می‌چرخاند. متاسفانه این دستور مثل دستور ‌exiftool‌ قابلیت حذف فایل اصلی را ندارد و همواره فایل‌های قبلی را نگه‌می‌دارد و شما خودتان دستی باید آن‌ها را بعدا پاک کنید. ‌ ‌

renrot -v $
!FATAL: Extension of files is required
 renrot --extension jpg -v $
 :]: main::renRotProcess()1DEBUG[
Trim string: '-trim'  
 :]: main::renRotProcess()1DEBUG[
...Initializing tags  
RENAMING / ROTATING
===================

....jpg00001 )19 of 1( :Processing file
.jpg20080921171446 .jpg ->00001 :Renamed
....jpg00002 )19 of 2( :Processing file
.jpg20080921171452 .jpg ->00002 :Renamed
...
 ls -lh $
 21-09-2008 M4.0 me me 1 -rw-r-----
.jpg20080921171446 17:14  
 21-09-2008 M4.4 me me 1 -rw-r-----
.jpg20080921171452 17:14  
...

محمدرضا قربانی

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها