Als "fotografischer Enthusiast" (okay, ich gebe zu, dass ich nicht qualifiziert bin, ich habe nur ein paar Tage lang Fotografie gespielt --_- !!) Es gibt immer eine Sache, die nicht vermieden werden kann, nämlich die Fotos die exif -Parameter mitbringen zu lassen. Obwohl mein Blog Plug-Ins installiert hat, um EXIF-Informationen anzuzeigen, bin ich der Meinung, dass die Plug-Ins immer noch nicht sehr leistungsfähig sind. Darüber hinaus müssen einige umfassende Operationen berücksichtigt werden, wie z. B. Anpassungen der Stapelgrößen, Urheberrechtsinformationen usw.
Zum Glück brauchen wir immer noch PS und können auch PS -Skripte schreiben, damit er bestimmte Operationen nach unseren Ideen ausführen kann :) Hehe, ich habe eine PS -Skript aus einem Beitrag zum Wuji -Forum gefunden und einige Modifikationen nach meinen eigenen Ideen hinzugefügt (hauptsächlich Zeit, Objektivanerkennung und fokale Längenerkennung). Die Renderings sind im Fragebild angezeigt. Bei Skripten ist es viel bequemer. Wenn Sie beispielsweise Exif -Grenzen in Chargen hinzufügen möchten, ist dies sehr einfach. Nehmen Sie einfach eine Aktion auf und stellen Sie dann diese Aktion aus :)
Schließlich dieses Skript anhängen:
displayDialogs = dialogmodes.no; var defaultrulerunits = preferences.Rulerunits; Präferenzen.Rulerunits = Einheiten.pixel; // eine lange Zeichenfolge in eine einzelne String -Funktion exploitarray (item) {var i = 0; var count = 0; var tempstring = new String (item); tempArray = new Array (1); do {i = tempstring.indexof (":"); if (i> 0) tempstring = tempstring.substr (i+1, tempstring.length-i-1); i = tempstring.indexof (">"); if (i> 0) {temparray [count] = tempstring.substring (0, i); 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 ++;}} while (tempstring.indexof ("</x: xmpmeta>")> 0); tempArray [count] = tempstring; Rückkehr Temparray; } var i = 0; var j = 0; var k = 0; var precesoution = 72; var ad = ""; var resratio = ""; var imageratio = ""; var datearray1 = ""; var datearray2 = ""; var monatarray = ""; var exposureProgram = ";"; photoHight = ""; var exifdata = ""; var schwarz = ""; var White = ""; var Gray = ""; var fwidth = ""; var fhight = ""; var tSize = ""; var tleft = ""; var thight = ""; var Infolayer = ""; var ti = ""; namelayer = ""; var tn = ""; var StringTemp = ""; // Temporary String var make = ""; // Kameraunternehmen var model = ""; // Kamera modell var camera = ""; // camera var lens = ""; // Look type var lensUsused = ""; // Das Objektiv verwendete var focallength = ""; // Fokus Länge var exposuretime = ""; // Shutter var fnumber = ""; // Aperture var iSospeedratings = ""; // ISO Setting var datetimeOriginal = ""; // Aufnahmezeit var exposureBiasValue = ""; // Expositionskompensation var expositionProgram = ""; // Expositionsprogrammmodus vared = ""; // Flash -Modus // Wechseln Sie zu dem, was Sie schreiben möchten, z. B. das Urheberrecht und Ihren eigenen Webnamen usw.//if leer, der von der Kamera festgelegte Name wird verwendet. // AGLIN hat einen Code zusammengestellt, um die Bildgröße automatisch in die Online -Kommunikationsgröße zu ändern. // Ein wenig Modifikation, wenn beide Seiten breit und schmaler als 1000 sind, wird sie automatisch geschnitten. // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Ad.width.Value/ad.height.value; if (Imageratio> 1) ad.ResizeImage (Resizemax, Resizemin, Vorverträglichkeit, Resamplemethod.bicubicsharper); if (imagePeratio == 1) ad.ResizeImage (Resizemax, Resizemax, Vorverträglichkeit, Resamplemethod.Bicubicsharper); if (ImageBeratio <1) ad.ResizeImage (Resizemin, Resizemax, Vorschriften, Resamplemethod.Bicubicsharper); if (ImageBeratio <1) ad.ResizeImage (Resizemin, Resizemax, Vorschriften, Resamplemethod.Bicubicsharper); } // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CS erhält exif-Informationen // Verschlusszeit für (n = 0; n <tempArray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("exposuretime")! =-1) {exposuretime = tempArray [n+1]; break;}} // Aperturgröße für (n = 0; n <temparray.length; n ++) {stringTemp = temparray [n]; if (stringTemp.indexof ("fnumber")! =-1) {fnumber = temparray [n+1]; {stringTemp = tempArray [n]; if (stringTemp.indexof ("exposureProgram")! =-1) {exposureProgram = tempArray [n+1]; break;}} // Expositionskompensation für (n = 0; n <tempArray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("exposureBiasValue")! break;}} // Flash-Modus für (n = 0; n <tempArray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("fired")! =-1) {fired = temparray [n+1]; break;}} // Aufnahme Datum und Uhrzeit für (n = 0; n <tempArray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("DateTimeOriginal")! break;}} // Fokuslänge für (n = 0; n <temparray.length; n ++) {stringTemp = tempArray [n]; if (temparray [n] == "Focallength") {Focallength = Temparray [n+1]; break; StringTemp = tempArray [n]; if (stringTemp.indexof ("iSospeedratings")! break;}} // Lens -Typ für (n = 0; n <temparray.length; n ++) {stringTemp = tempArray [n]; if (tempArray [n] == "lens") {lens = temparray [n+1] verwenden; break;}} // Kameramersteller für (n = 0; n <tempArray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("make")! =-1) {make = temparray [n+1]; Break;}} // Kameramodell für (n = 0; n <temparray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("modell")! =-1) {var modell = temparray [n+1]; Break;}} // für einige Kamera -Modelle nicht den Teil des Herstellers einschließen // camera = make+modell; // Integrieren Sie für einige Kamera -Modelle die Teilkamera des Herstellers = Modell; // Kamerabesitzer für (n = 0; n <tempArray.length; n ++) {stringTemp = tempArray [n]; if (stringTemp.indexof ("creator")! break;}} // Verschlussreng datearray1 = exposuretime.split ("/"); j = datearray1 [0]; i = = i = überprüfen. datearray1 [1]; if (j/i> = 1) exposuretime = parseInt (j/i)+". datearray1 [0]; j = datearray1 [1]; if (j> 1) fnumber = i/j; elsefnumber = i; // Expositionskompensation in decimal datearray1 = exposureBiasValue.Split ("/"); Punkt, nur *100/100, halte 1 Ziffern, nur *10/10 // 2 Ziffern hier behalten, 20D kann diese beiden Linien nicht haben, wenn (exposciasValue! ExpositionsprogramArray = ["Undefined", "Manual", "Normal Program", "Aperture Priority", "Shutter Priority", "Creative Program", "Action Program", "Porträtmodus", "Landscape -Modus"]; ExposureProgram = ExposureProgramarray [ExposureProgram]; // Flash -Modus -Datenträger -Datenträger -Datarray 1 = exposureProgramarray [exposureProgram]; gefeuert; if (datearray1.indexof ("true")! DateTimeOriginal.Split ("T"); Phodate = datearray1 [0]; Photime = datearray1 [1]; datearray2 = phodate.Split ("-"); MonateArray = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; Phodate = datearray2 [0]+"-"+monatarray [datearray2 [1] -1]+"-"+datearray2 [2]; datearray2 = photime.Split ("+"); Photime = datearray2 [0]; // Wenn Sie eine Linse haben, ändern Sie es einfach nach dem Lens und Maximum-Fokus, wenn Sie (lens! {if (lens.indexof ("17.0-40,0 mm")! } // Wenn es keine Linseninformationen gibt, verwenden Sie die ursprüngliche Methode, um sonst zu vergleichen. {Var focLength = parseInt (Focallength); // if (focLength> = 70 && focLength <= 200) // lensUssed = "nikon"; // if (focLength == "85") // lensUssed = "nikon"; // if (focLength == "100") // lensus = "nikon"; } // Zeichnen von Linien und Kästchen // Schwarz definieren, können Sie auch andere Farben Black = New SolidColor () definieren; schwarz.rgb.red = schwarz.rgb.green = schwarz.rgb.blue = 0; // White definieren, können Sie auch andere Farben White definieren = neuer SolidColor (); white.rgb.red = white.rgb.green = white.rgb.Blue = 255; // Grey definieren, können Sie auch andere Farben grau definieren = neuer SolidColor (); grey.rgb.red = grey.rgb.green = grey.rgb.blue = 50; // fügen Sie eine weiße Linie hinzufügen, Hintergrundkolor = weiß; // Wenn in schwarze Linie geändert // BIGINGCOLOR = Black; // Die Breite und die schmale der weißen Linie sind auf beiden Seiten auf 2 oder 4 eingestellt. Die tatsächliche Breite wird durch 2ad.Resizecanvas geteilt (ad.width.Value+2, ad.height.Value+2, Anchorposition.Middlecenter); // grauer Rahmen hinzufügen // HintergrundColor = Gray; // schwarzer Rahmenhintergrund hinzufügen. // Wenn in weißem Rahmen geändert // HintergrundColor = White; // Grenze Breite und Höhe, hier setzen Sie die Breite und schmal des schwarzen Rahmens auf 1/40 der Bildbreite, und auf beiden Seiten wird die tatsächliche Breite durch 2fwidth = parseInt (Photowidth/40) geteilt; Ad.Resizecanvas (ad.width.Value+fwidth, ad.height.value+fhight, Anchorposition.MiddleCenter); // Fügen Sie unten einen Erweiterungspunkt hinzu, um das Schreiben ad.Resizecanvas zu erleichtern (ad.width.value, ad.height.value+fhight+fhight, verankerung.topcenter); // Standard und Parameter namelayer = ad.artlayers.add (); namelayer.kind = layerkind.text; Tn = namelayer.textItem; Tn.Contents = Creator; // Copyright -Schriftart, Schriftgröße, Farbe und fett usw. tn.font = "stxingkai"; // Rechts ausgerichtete tn.justification = Begründung.Right; // Schriftgröße tSize = parseInt ((fwidth+10)/2); // Schriftrand und unterer Rand tleft = photowidth; dhight = photoHight-fhight+tsize; // Position des marker tn.position = [tleft, thight]; Tn.color = weiß; // Wenn es sich um einen weißen Rahmen handelt, ist die Schrift schwarz //tn.color = schwarz; Tn.fauxbold = true; Infolayer = ad.Artlayers.Add (); Infolayer.kind = layerkind.text; Ti = Infolayer.TextItem; // Rechts ausgerichtet, wenn es links ausgerichtet ist, kann die folgende Zeile weggelassen werden. Justization = Rechtfertigung.Right; @"+Focallength+" mm, "+Exposuretime+" Sec, f/"; = Ti.Contents+"/u000d"+Phodat+""+Photime; // Schriftart, Schriftgröße, Farbe usw. ti.font = "BOLD"; //Ti.font = "Arial"; Ti.size = tSize; Ti.color = weiß; // Wenn es sich um eine weiße Box handelt, ist die Schrift schwarz // ti.color = schwarz; Ti.fauxbold = true; ad.flatten (); // -------------