PDA

مشاهده نسخه کامل : معرفي Action



PSLover
16-07-07, 17:16
سلام،
همونطوري كه قولش رو داده بودم:

شايد تعجب كنيد اگر بگويم بعد از نگارش 4 كه قابليت Action به فتوشاپ اضافه گرديد , روز به روز بر تعداد كساني كه از Action استفاده مي‌كنند , افزوده شده است. اين قابليت عالي به شما اجازه مي‌دهد با ضبط ماكروها , بسياري از امور طاقت‌فرساي مربوط به ويرايش‌هاي زيربنايي تصاوير را به صورت خودكار به انجام برسانيد.
استفاده از ماكرو Action بسيار ساده است , ولي اگر قرار باشد به تنهايي مورد استفاده قرارگيرد محدوديت‌هايي نيز دارد (مثلا كارهاي Action را فقط مي‌توان بر روي تصوير فعال باز شده در فتوشاپ اعمال كرد). البته فتوشاپ اين مشكل را به كمك قابليت ديگري به نام Batch Automation حل كرده است (براي استفاده از اين قابليت , در مسير File  Automate را انتخاب كنيد). اين قابليت به شما اجازه مي‌دهد اعمال Action تعريفي خود را بر روي تمام تصاوير موجود در يك دايركتوري مشخص اجرا كنيد.

مروري كوتاه بر Action
براي اين‌كه بتوانم تصاوير JPEG گرفته شده با يك دوربين ديجيتالي را براي چاپ آماده كنم از قابليت Batch فتوشاپ استفاده مي‌نمايم , تا آنها را به CMYK Tiffs تبديل كنم. در واقع برنامه 2.0 Elements كه ارزان‌تر از فتوشاپ است قابليت Batch مشابهي دارد كه فقط براي اين منظور طراحي شده است.
روتين Batch را صرفا مي‌توان بر روي يك دايركتوري (و تبعا زير دايركتوري‌هاي درون آن) اعمال كرد , اما من راهي پيدا كرده‌ام كه با آن مي‌توان اين محدوديت را برداشت. براي اين منظور يك Shortcut از تمام دايركتوري‌هايي كه مي‌خواهيد روتين Batch بر روي آنها اعمال شود را در دايركتوري اصلي قرار دهيد.

بزرگترين ضعف Action , بي منطقي آن است
روتين‌هاي منطقي (كه به دستورالعمل‌هاي شرطي if…Else نيز مشهورند) عملا هنگام پردازش تصاوير از اهميت بسيار بالايي برخوردارند. به عنوان مثال فرض كنيد , مي‌خواهيد قطع يك تصوير را فقط در صورتي تغيير دهيد كه آن تصوير خوابيده يا ايستاده باشد. يا مثلا مي‌خواهيد اندازه يك تصوير تنها زماني تغيير كند كه تعداد پيكسل‌هاي آن از حد معيني بيشتر باشند و در غير اين‌صورت آن را به همان حال رها كنيد. مشكل ماكروهاي Action اين است كه نمي‌تواند بين اين وضعيت‌ها تفاوتي قائل شوند.
خوشبختانه فتوشاپ از ابزار اتوماسيون ديگري به نام اسكريپت‌نويسي (Scripting) نيز سود مي‌برد گرچه كمتر كسي از آن استفاده مي‌كند ولي روتين‌هاي منطقي را نيز پشتيباني مي‌‌نمايد. اسكريپت‌هاي فتوشاپ را هم مي‌توانيد به ويژوال بيسيك اسكريپت بنويسيد و هم به زبان جاوااسكريپت (فتوشاپ , يا حداقل 7 كه بنده با آن آشنايي دارم , به صورت داخلي قادر به پشتيباني از قابليت پردازه‌نويسي نيست. براي افزودن اين قابليت به آن ابتدا لازم است Plug-in مخصوصي كه در آدرس Only the registered members can see the link قرار دارد را دريافت و نصب كنيد. پس از نصب Plug-in فوق , گزينه جديدي به نام Scripts به منوي File a Automate فتوشاپ اضافه مي‌گردد).

با قدرت جاوا
از كدام زبان بايد استفاده كنيد؟ خوب ... هر يك مزاياي خودش را دارد. ويژوال‌بيسيك اسكريپت زباني جهاني است كه به شما اجازه مي‌دهد به ساير برنامه‌هاي كاربردي لينك بزنيد , به طوري كه فقط با يك اسكريپت مي‌توانيد يك روندكاري كامل را برنامه‌ريزي كنيد.
اسكريپت‌هاي جاوااسكريپت از اين نظر محدوديت دارند و صرفا از طريق File  Scripts اجرا مي‌شوند. ولي در عوض جاوااسكريپت زباني است كه به سيستم‌عامل خاصي وابسته نيست و تقريبا در تمام برنامه‌هاي كاربردي مالتي‌مديا نيز حضور دارد (حتي Director قديمي نيز در نگارش MX2004 به جاوااسكريپت مجهز شده است). در واقع وقتي جاوااسكريپت را بياموزيد مي‌توانيداز دانسته‌هاي خود در تمام نرم‌افزارهاي مالتي‌مديا استفاده كنيد.
حتي اگر آشنايي اندكي با جاوااسكريپت يا ويژوال‌بيسيك اسكريپت داشته باشيد , نيز باز مي‌توانيد در فتوشاپ دست به اقدامات محيرالعقولي بزنيد , چرا كه Actionها را نيز مي‌توان از داخل اسكريپت‌ها فراخواند. بنابراين فقط كافيست يك Action از قبل ضبط شده را در يك اسكريپت ابتدايي جاوااسكريپت مابين يك دستورالعمل شرطي قرار دهيد تا به روتين‌هاي فتوشاپ قدرت تفكر ببخشد.
كد كوتاه جاوااسكريپت صفحه مقابل نحوه كار را نشان مي‌دهد. دو خط ساده اول مشخص مي‌كنند آيا عرض تصوير فعال شده باز در فتوشاپ از ارتفاع آن بيشتر است يا خير. اگر چنين بود , Action از قبل ضبط شده‌اي كه من در Default Action.atn آن را firstAction ناميده‌ام توسط اسكريپت مذكور به اجرا گذاشته مي‌شود. (بديهي است اين Action يا هر Action ديگري نيز مي‌تواند باشد و اين به انتخاب شما بستگي دارد).
اما اگر ارتفاع تصوير بيشتر از عرض آن باشد , Action ديگري به نام SecondAction (كه همان set قرار دارد) به اجرا در خواهد آمد.
if (app.activeDocument.width > app. activeDocument.height) doAction(firstAction , DefaultActions.atn) , else
{
doAction (secondAction , DefautActions.atn)
}
به همين سادگي !... اسكريپتي كه دستورالعمل شرطي آن فقط چهار خانه دارد. اسكريپت ساده فوق بيانگر اين حقيقت است كه براي ساختن روتين‌هاي پيچيده اتوماسيون‌سازي و اعمال آنها بر روي يك تصوير , حتما لازم نيست يك اسكريپت ساده‌نويس حرفه‌اي باشيد.

اعمال اسكريپت‌ها به صورت دسته‌اي
حتي اگر بپذيريد اسكريپت‌نويسي چيز مفيدي است , حتما الان با تعجب از خود مي‌پرسيد اسكريپت‌ها را نيز كه فقط مي‌توان بر روي يك تك تصوير اجرا كرد , پس چگونه مي‌توان از اين دستورالعمل‌هاي شرطي براي پردازش تصاوير به صورت دسته‌اي كمك گرفت؟ انجام اين كار بسيار آسان‌تر از آن چيزي است فكر مي‌كنيد. درست به همان سادگي كه يك Action را درون يك اسكريپت قرار مي‌داديد , به همان سادگي نيز مي‌توانيد اسكريپت‌ها را از طريق منوي Scripts به عنوان يك ماكرو در پالت Action ضبط كنيد (به عبارت ساده‌تر , اگر كليد ضبط ماكروي پالت Actions را فعال كرده و سپس از طريق منوي Scripts , اسكريپت مورد نظر را فرا بخوانيد , آن اسكريپت به عنوان يك ماكرو به پالت Actions اضافه خواهد شد).
اگر Action ضبط شده نهايي را ذخيره كنيد مي‌توانيد آن را از طريق منوي File  Automate  Batch بر روي كل محتويات يك دايركتوري اعمال نماييد.
توجه داشته باشيد براي نوشتن اسكريپت‌هاي جاوااسكريپت نيازي به خريد يك ويرايشگر گران‌قيمت نيست , بلكه براي اين كار از يك ويرايشگر ساده متن مثل Wordpad نيز مي‌توانيد استفاده كنيد. در صورتي‌كه فايل نهايي را با پسوند JS ذخيره نماييد , فتوشاپ به صورت خودكار آن را شناسايي خواهد كرد.
براي اين‌كه بتوانيد مستقيما از طريق منوي Scripts به اسكريپت‌هاي خود دسترسي پيدا كنيد كافيست آنها را در دايركتوري Presets  Scrips (واقع در دايركتوري محل نصب فتوشاپ) ذخيره نماييد. با انجام اين كار اسكريپت‌ها مستقيما از طريق منوي Script فتوشاپ قابل انتخاب شما خواهند شد. اگر آنها را در اين دايركتوري ذخيره نكيند , براي اجراي اسكريپت‌ها مي‌بايست از گزينه Browse موجود در منوي Script استفاده كنيد.
براي اين‌كه ببينيد با اسكريپت‌نويسي چه كارهايي مي‌توانيد انجام دهيد راهنماي پردازه‌نويسي جالبي كه همرا فتوشاپ نصب مي‌شود را مطالعه نماييد كه ارزش آن را دارد.