بصفتي "متحمسًا للتصوير الفوتوغرافي" (حسنًا ، أعترف أنني لست مؤهلاً ، لقد كنت ألعب التصوير الفوتوغرافي فقط لبضعة أيام - - -!!) هناك دائمًا شيء واحد لا يمكن تجنبه ، وهو السماح للصور بإحضار المعلمات الخارجية. على الرغم من أن مدونتي قد قمت بتثبيت المكونات الإضافية لعرض معلومات EXIF ، إلا أنني أشعر أن المكونات الإضافية لا تزال غير قوية للغاية. بالإضافة إلى ذلك ، يجب النظر في بعض العمليات الشاملة ، مثل تعديلات حجم الدُفعات ، ومعلومات حقوق الطبع والنشر ، إلخ.
بطبيعة الحال ، لحسن الحظ ، ما زلنا بحاجة إلى PS ، ويمكننا أيضًا كتابة البرامج النصية PS للسماح له بإجراء عمليات معينة وفقًا لأفكارنا :) Hehe ، لقد وجدت برنامجًا نصيًا من منشور في منتدى Wuji ، وأضفت بعض التعديلات وفقًا لأفكاري الخاصة (بشكل رئيسي ، والتعرف على العدسة ، والتعرف على طول البؤرة). يتم عرض العروض في صورة السؤال. مع البرامج النصية ، فهي أكثر ملاءمة. على سبيل المثال ، إذا كنت ترغب في إضافة حدود خارجية على دفعات ، فهذا أمر بسيط للغاية. ما عليك سوى تسجيل إجراء ثم قم بتشغيل هذا الإجراء :)
أخيرًا ، قم بإرفاق هذا البرنامج النصي:
displayDialogs = dialogmodes.no ؛ var defaultrulerUnits = التفضيلات. التفضيلات. rulerUnits = units.pixels ؛ // تتحلل سلسلة طويلة في وظيفة سلسلة واحدة exploitarray (item) {var i = 0 ؛ var count = 0 ؛ var tempstring = سلسلة جديدة (عنصر) ؛ Temparray = صفيف جديد (1) ؛ do {i = tempstring.indexof (":") ؛ if (i> 0) tempString = tempString.substr (i+1 ، tempstring.length-i-1) ؛ i = tempstring.indexof (">") ؛ if (i> 0) tempString = tempString.substr (i+1 ، tempstring.length-i-1) ؛ count ++ ؛} i = tempstring.indexof ("<") ؛ if (i> 0) {temparray [count] = tempstring.substr (0 ، i) ؛ TempString = tempstring.substr (I-1 ، tempstring.length-i+1) ؛ count ++ ؛}} بينما (tempstring.indexof ("</x: xmpmeta>")> 0) ؛ temparray [count] = tempstring ؛ إرجاع Temparray } var i = 0 ؛ var j = 0 ؛ var k = 0 ؛ var presulotion = 72 ؛ var ad = "" ؛ var resratio = "" ؛ var imageratio = "" ؛ var datearray1 = "" Photohight = "" ؛ var exifdata = "" ؛ var black = "" ؛ var white = "" ؛ var gray = "" ؛ var fwidth = "" ؛ var fhight = "" ؛ var tsize = "" ؛ var tleft = "" ؛ var thight = "" ؛ var infolayer = "" ؛ var ti = "" ؛ namelayer = "؛ var tn = "" ؛ var stringtemp = "" ؛ // سلسلة مؤقتة var make = "" ؛ // Camera Company var model = "" ؛ // camera model var camera = "؛ // طول التركيز var Exposuretertime = "" ؛ // Shutter var fnumber = "" ؛ // apperture var isOSPEEDRatings = "" ؛ // ISO setting var dateTimeOriginal = "" ؛ // flash mode // change to to want to write ، مثل حقوق الطبع والنشر واسم الويب الخاص بك ، إلخ. // قام Aglin بتجميع رمز لتغيير حجم الصورة تلقائيًا إلى حجم الاتصال عبر الإنترنت. // القليل من التعديل ، إذا كان أي من الجانبين واسعة وأضيق من 1000 ، فسيتم قطعه تلقائيًا // أطول جانب هنا هو 750 ، وأقصر جانب هو 500//يرجى ضبط نسبة العرض إلى الارتفاع وفقًا لنسبة الصورة التي التقطتها الكاميرا // إذا لم تستخدمها ، يمكنك إزالتها . ad.width.value/ad.height.value ؛ if (imageratio> 1) Ad.ResizeImage (resizemax ، resizemin ، presulotion ، resamplemethod.bicubicsharper) ؛ if (imageratio == 1) ad.ResizeImage (resizemax ، resizemax ، presulotion ، resamplemethod.bicubicsharper) ؛ if (imageratio <1) ad.ResizeImage (resizemin ، resizemax ، presulotion ، resamplemethod.bicubicsharper) ؛ if (imageratio <1) ad.ResizeImage (resizemin ، resizemax ، presulotion ، resamplemethod.bicubicsharper) ؛ } // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CS يحصل على معلومات exif // سرعة الغالق لـ (n = 0 ؛ n <peratarray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("Exposuretime")! =-1) {ExposureTime = temparray [n+1] ؛ break ؛}} // حجم الفتحة لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("fnumber")! =-1) {fnumber = temparray [n+1] stringtemp = temparray [n] ؛ if (stringTemp.Indexof ("DesconsposureProgram")! =-1) {DesposureProgram = temparray [n+1] ؛ break ؛}} // تعويض التعرض لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("desconsedBiasValue")! =-1) break ؛}} // mode flash لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("fired")! =-1) {fired = temparray [n+1] ؛ break ؛}} // تسديدة تاريخ ووقت (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("dateTimeOriginal")! =-1) {dateTimeOriginal = temparray [n+1] ؛ break ؛}} // استخدم الطول البؤري لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (temparray [n] == "طول focall") {focallength = temparray [n+1] ؛ break ؛ stringtemp = temparray [n] ؛ if (stringtemp.indexof ("isOspeedRatings")! =-1) {isospeedRatings = "، ISO"+temparray [n+5] ؛ break ؛}} // استخدم نوع العدسة لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (temparray [n] == "عدسة") {عدسة = temparray [n+1] ؛ Break ؛}} // Camera Manufaction لـ (n = 0 ؛ n <peratarray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("make"! =-1) {make = temparray [n+1] ؛ break ؛}} // نموذج الكاميرا لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("model")! =-1) {var model = temparray [n+1] ؛ break ؛}} // لبعض نماذج الكاميرا ، لا تتضمن جزء الشركة المصنعة // camera = make+model ؛ // لبعض نماذج الكاميرا ، قم بتضمين كاميرا جزء الشركة المصنعة = الطراز ؛ // مالك الكاميرا لـ (n = 0 ؛ n <temparray.length ؛ n ++) {stringtemp = temparray [n] ؛ if (stringtemp.indexof ("creator")! =-1 && creator == "") {creator = temparray [n+5] ؛ break ؛}} // تحقق من سرعة الغالق datearray1 = Exposuretime.split ("/") ؛ j = datearray1 [0] ؛ i = datearray1 [1] ؛ if (j/i> = 1) ExposureTime = parseint (j/i)+". datearray1 [0] ؛ j = datearray1 [1] ؛ if (j> 1) fnumber = i/j ؛ elsefnumber = i ؛ // تحويل تعويض التعرض إلى datearray1 = datearray1 ؛ النقطة العشرية ، فقط *100/00 ، احتفظ بأرقام واحدة ، فقط *10/10 // الاحتفاظ رقمين هنا ، لا يمكن أن يكون لدى 20D هذين الخطين إذا (التعرض (التعرض! DesconderProgramarray = ["غير محدد" ، "دليل" ، "برنامج عادي" ، "أولوية فتحة" ، "أولوية مصراع" ، "برنامج إبداعي" ، "برنامج عمل" ، "وضع صورة" ، "وضع المشهد"] تم إطلاقه ؛ if (datearray1.indexof ("true")! =-1) fired = "flashon" ؛ oldefired = "flashoff" ؛ datetimeoriginal.split ("t") ؛ phodate = datearray1 [0] ؛ photime = datearray1 [1] ؛ datearray2 = phodate.split ("-") ؛ شهرين = ["1" ، "2" ، "3" ، "4" ، "5" ، "6" ، "7" ، "8" ، "9" ، "10" ، "11" ، "12"] ؛ phodate = datearray2 [0]+"-"+شهرين [datearray2 [1] -1]+"-"+datearray2 [2] {if (lens.indexof ("17.0-40.0 mm")! =-1) Lensused = "Canon 17-40mm F4L USM" ؛ } // إذا لم تكن هناك معلومات عدسة ، فاستخدم الطريقة الأصلية لمقارنة Else {var forclength = parseint (forcallength) ؛ lesused = "18-55mm 1: 3.5-5.6g" ؛ // if (foClength> = 17 && roclength <= 40) // ensused = "nikon" ؛ // if (foClength> = 70 && roclength <= 200) // lensused = "nikon" ؛ // if (foClength == "85") // lensused = "nikon" ؛ // if (foClength == "100") // lensused = "nikon" ؛ } // ارسم الخطوط والصناديق // تعريف الأسود ، يمكنك أيضًا تحديد ألوان أخرى أسود = جديد SolidColor () ؛ Black.rgb.red = Black.rgb.green = Black.rgb.blue = 0 ؛ // تحديد اللون الأبيض ، يمكنك أيضًا تحديد ألوان أخرى بيضاء = جديد SolidColor () ؛ white.rgb.red = white.rgb.green = white.rgb.blue = 255 ؛ // تعريف الرمادي ، يمكنك أيضًا تحديد ألوان أخرى باللون الرمادي = جديد SolidColor () ؛ grey.rgb.red = grey.rgb.green = grey.rgb.blue = 50 ؛ // إضافة خط خلفي خط أبيض = أبيض ؛ // إذا تم تغييره إلى خط أسود // backgroundColor = Black ؛ // يتم تعيين عرض وضيق الخط الأبيض على 2 أو 4 ، على كلا الجانبين ، يتم تقسيم العرض الفعلي على 2Ad.ResizeCanvas (ad.width.value+2 ، ad.hight.value+2 ، anchorposition.middlecenter) ؛ // إضافة إطار رمادي // backgroundColor = رمادي ؛ // إضافة أسود الإطار الخلفية collor = أسود ؛ // إذا تم تغييره إلى إطار أبيض // backgroundColor = White ؛ // عرض الحدود وارتفاعه ، حدد هنا عرض وضيق الإطار الأسود إلى 1/40 من عرض الصورة ، وعلى كلا الجانبين ، يتم تقسيم العرض الفعلي على 2fwidth = parseint (photowidth/40) ؛ fhight = parseint (photowidth/40) ؛ ad.ResizeCanvas (ad.width.value+fwidth ، ad.height.value+fhight ، anchorposition.middlecenter) ؛ // أضف نقطة اتساع في الأسفل لتسهيل كتابة ad.resizecanvas (ad.width.value ، ad.height.value+fhight+fhight ، anclposition.topcenter) ؛ // القياسي والمعلمات namelayer = ad.artlayers.add () ؛ namelayer.kind = layerkind.text ؛ tn = namelayer.textitem ؛ tn.contents = creator ؛ // خط حقوق الطبع والنشر ، حجم الخط ، اللون والجرأة ، إلخ. tn.font = "stxingkai" ؛ // يمين المحاذاة tn.justification = مبررات tn.color = أبيض ؛ // إذا كان إطارًا أبيض ، فإن الخط أسود //tn.color = أسود ؛ tn.fauxbold = true ؛ infoLayer = ad.artlayers.add () ؛ infoLayer.Kind = layerkind.text ؛ ti = infolayer.textItem ؛ // محاذاة يمين ، إذا تم تركه محاذاة ، يمكن حذف السطر التالي ti.justification = مبرر "+lensused+" @"+focallength+" mm ، "+ExposureTime+" sec ، f/"؛ ti.contents = ti.contents+fnumber+" ، ev "+desconsedbiasvalue+isOspeedRatings ؛ // if غير مهتم ببرامج التعرض ، يرجى إزالة الخط التالي ti.contents = ti.contents+". "+fired ؛ ti.contents = ti.contents+"/u000d "+phodate+" "+photime ؛ // font ، حجم الخط ، اللون ، إلخ. ti.font =" Bold "؛ //ti.font = "arial" ؛ ti.size = tsize ؛ ti.color = أبيض ؛ // إذا كان صندوقًا أبيض ، فإن الخط أسود // ti.color = أسود ؛ ti.fauxbold = true ؛ ad.flatten () ؛ // -------------