‌BIRRC ابزاری احتمالا مفید برای بلاگرها

خلاصه

برای دوستانی که حوصله خوندن متن طولانی رو ندارند:

برنامه‌ای نوشتم که می‌تونه تعدادی فایل تصویری رو بگیره (در واقع عکس‌هاتون رو انتخاب کنید و بکشید روی آیکن این برنامه) و همه اون‌ها رو به فرمت jpg تبدیل کنه، ابعادشون رو به حداکثر ۸۰۰ پیکسل کاهش بده، کیفیت شون رو برای آپلود در وب تا حدود ۸۰ درصد پایین بیاره و بعد با اسمی که شما تعیین می‌کنید از نو نام‌گذاری‌شون کنه. این برنامه احتیاجی به نصب شدن نداره و می‌تونید از این‌جا دانلودش کنید.

به نظرم رسید که این ابزار می‌تونه برای خیلی از بلاگرها به دردبخور باشه. به همین دلیل گفتم این‌جا منتشرش کنم و در موردش بنویسم تا شاید هم به درد کسی بخوره و هم ایراد و اشکال‌هایی که خودم ندیدم، بهم نشون داده بشه.

پیش‌زمینه

برای سری پست‌های «دوز روزانه معماری» در وبلاگ معماری‌ام، به صورت مداوم به تغییر ابعاد و اندازه عکس‌ها، نام‌گذاری مجددشون براساس شماره پست (مثلا DDA-7-3 برای سومین عکس پست شماره ۷ دوز روزانه) و البته کاهش حجم‌شون (با کاهش کیفیت JPG تا ۸۰٪) نیاز داشتم اما:

۱- نام‌گذاری دسته‌ای ویندوز به خاطر اون پرانتزهاش به دردم نمی‌خورد.
۲- حوصله باز کردن همزمان چندتا عکس توی Paint.NET، تغییر ابعادشون و ذخیره مجدد با کیفیت پایین‌تر رو نداشتم.

به همین دلیل اول برای حل مشکل نام‌گذاری یه برنامه Batch Rename برای خودم نوشتم. بعد هم یک برنامه برای تغییر ابعاد و فرمت عکس‌ها و بعد تصمیم گرفتم هر دو برنامه رو با هم ادغام کنم و اسمش رو بگذارم BIRRC (مثلا سرنام Batch Image Rename,Resize and Convert) که خیلی هم خفن به نظر بیاید.

BIRRC

این برنامه رو به چند دلیل به جای پایتون (همراه با کتابخانه Pillow و شبه‌کامپایلر Pyinstaller) با Pure Basic نوشتم که بعدا توضیح می‌دم. خود برنامه رو می‌تونید از این‌جا دانلود کنید (فعلا فقط نسخه ۶۴ بیتی) و این هم کد برنامه است:

OpenConsole()
UseJPEGImageEncoder()
UseJPEGImageDecoder()
UseJPEG2000ImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseTGAImageDecoder()
Print("Enter the constant part of file name:")
constantPart.s=Input()
numberOfFiles.i = CountProgramParameters()
iterator.i = 1
itLength = Int(Log10(numberOfFiles))+1
For i=0 To (numberOfFiles-1)
currentFile.s =ProgramParameter()
im = LoadImage(#PB_Any , currentFile)
If ImageHeight(im) > 800 Or ImageWidth(im) > 800
If ImageHeight(im) > ImageWidth(im)
newHeight.i = 800
newWidth.i = (800 * ImageWidth(im))/ImageHeight(im)
Else
newWidth.i = 800
newHeight.i = (800 * ImageHeight(im))/ImageWidth(im)
EndIf
ResizeImage(im , newWidth,newHeight)
EndIf
;;;File Operation
DeleteFile(currentFile)
newFile.s = GetPathPart(currentFile) + constantPart + RSet(Str(iterator), itLength ,"0") + ".jpg"
SaveImage(im , newFile,#PB_ImagePlugin_JPEG,7)
iterator = iterator + 1
Next

دلیل استفاده نکردن از پایتون هم این بود که اولا نصب Pillow و Pyinstaller روی آخرین نسخه پایتون (3.5) کاری ملال‌آوره و دوم این‌که فایل اجرایی حاصل هم حجم زیادی در حد ۸ مگابایت (در مقابل ۸۰۰ کیلوبایت فعلی) داشت.

شیوه استفاده

برنامه احتیاجی به نصب نداره. هرجا خواستید کپی‌اش کنید. اما برای راحتی کار می‌تونید یک shortcut براش روی دسک‌تاپ درست کنید. حالا فایل‌های تصویری موردنظرتون رو انتخاب کرده و روی این برنامه یا shortcutاش بکشید و رها کنید.

Drag-and-Drop

بعد از اون پنجره‌ای باز می‌شه که از شما می‌خواد اسم جدید فایل‌ها رو وارد کنید. بعد از وارد کردن اسم Enter بزنید.

Consoleو تمام. فایل‌های شما به فرمت jpg تبدیل می‌شن، اسم‌شون تغییر می‌کنه و کیفیت‌شون هم کم میشه تا حجم فایل‌شون پایین بیاد. توی همین نمونه مثلا حجم عکس‌ها از حدود ۳ مگابایت رسیده به ۶۷ کیلوبایت و اسم‌شون هم به BIRRC-1 تا BIRRC-5 تغییر کرده.

Finished

فقط دقت کنید که این برنامه فایل‌های اصلی رو جایگزین می‌کنه. پس اگر بهشون احتیاج دارید قبل از کشیدن‌شون روی آیکون برنامه ازشون کپی بگیرید!

باگ‌ها

من برنامه‌نویس حرفه‌ای نیستم. به همین دلیل ممکنه ایرادهای اساسی توی این برنامه وجود داشته باشه که خوشحال می‌شم بهم اعلام‌شون کنید. به همین دلیل این برنامه رو بدون تست کردن و آزمایش کافی برای کارهای اصلی و روزمره استفاده نکنید. به هر حال دو تا باگ اصلی که الان داره اینه که:

۱- اگر عکس‌های شما از دوربین اومده باشند و توی EXIF عکس‌ها متادیتای دوران دوربین وجود داشته باشه (دوربین روی عکس زاویه گرفته شدن رو ثبت کرده باشه)‌ عکس بعد از تغییر اندازه دوران می‌کنه و ۹۰ درجه می‌چرخه.

۲- اگر وسط فایل‌هایی که روی روی برنامه می‌کشید فایلی غیر از عکس یا عکسی با فرمت‌های غیرمعمول وجود داشته باشه، برنامه بدون هیچ پیغام خطایی اون فایل رو پاک می‌کنه.


به هر حال اگر از BIRRC استفاده کردید و خوش‌تون اومد یا به هر دلیلی مشکلی داشت و به درد نخورد یا هر چیز دیگه‌ای خوشحال می‌شم بهم اطلاع بدید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *