[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Script mit XMP Export: Bildbewertung

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Script mit XMP Export: Bildbewertung

buehda
Beiträge gesamt: 59

26. Feb 2012, 14:47
Beitrag # 1 von 12
Bewertung:
(11281 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Ich hab ein Script aus diesem Forum soweit hingekriegt, dass es mir alle nötigen Infos über die verknüpften Bilder in einer Tabelle ausspuckt – super!

Jetzt scheitere ich an einem einzigen XMP Attribut, nämlich der Bewertung. Mein code funktioniert, wenn ich die description herauslesen will, aber mit "rating" funktioniert es nicht (ich hab in den Adobe XMP Specifications nachgeschaut, es gibt hier die property "rating").

so funktionierts:

Code
	try    
{
var myRating = theFiles[myCounter].linkXmp.description;
}
catch (e)
{
var myRating = "geht nicht";
}


Ich hab dann das Wort "description" durch "rating" ersetzt, was leider zu keinem Ergebnis führt (Error)

Weiss jemand Rat?
Gruss buehda



Hier der ganze Code:

Code
var myDoc = app.documents[0];     
if (myDoc.saved == false)
{
alert("Error!\rPlease save the document!");
exit();
}
var myDocName = myDoc.name.split(".indd")[0];
var myTXT_File = myDocName + '.txt';
var myPath = myDoc.filePath + "/";
var myCreator = "R*ch";
var myType = "TXT";
var theFiles = myDoc.links;
var myData = "Titel\tTechnik\tFormat\tJahr\tBemerkungen\tRating\tDateiname\tAuflösung\tMax. Grösse\tFarbmodus\tDateiformat\t@Pfad\r";

var f = new File( myPath + myTXT_File );
f.open( 'w', myType, myCreator );
f.writeln( myData );

for (myCounter = 0; myCounter<theFiles.length;myCounter ++ ) {
var myBounds = theFiles[myCounter].parent.geometricBounds;
var myWidth = Math.round((myBounds[3]-myBounds[1])/10);
var myHeight = Math.round((myBounds[2]-myBounds[0])/10);
var myScaleVert = Math.round(theFiles[myCounter].parent.absoluteVerticalScale);
var myScaleHori = Math.round(theFiles[myCounter].parent.absoluteHorizontalScale);
try
{
var mySpace = theFiles[myCounter].parent.space;
}
catch (e)
{
var mySpace = "--";
}

try
{
var myRating = theFiles[myCounter].linkXmp.rating;
}
catch (e)
{
var myRating = "geht nicht";
}



try
{
var myLinkType = theFiles[myCounter].linkType;
}
catch (e)
{
var myLinkType = "--";
}
var myImagePath = theFiles[myCounter].filePath;

// WARNING if vertical scale is different to horizontal scale
if (myScaleVert != myScaleHori)
{
myScaleVert += " [!]";
myScaleHori += " [!]";
}
try
{
myPPI = (theFiles[myCounter].parent.actualPpi[0]);
if (theFiles[myCounter].parent.actualPpi[0] < 250) myPPI[0] = ("LQ! [" + myPPI[0] );
if (theFiles[myCounter].parent.actualPpi[1] < 250) myPPI[1] += "]";
}
catch (e)
{
myPPI = 0;
}
try
{
myPPI2 = (theFiles[myCounter].parent.effectivePpi);
if ((theFiles[myCounter].parent.effectivePpi[0] < 250) || (theFiles[myCounter].parent.effectivePpi[1] < 250))
{
myPPI2[0] = ("LQ! [" + myPPI2[0] );
myPPI2[1] += "]";
}
}
catch (e)
{
myPPI2 = 1;
}
try
{
myRA = Math.round(theFiles[myCounter].parent.rotationAngle);
}
catch (e)
{
myRA = 2;
}
var myPage = getPage(theFiles[myCounter].parent.parent.parent);
if (myPage.constructor.name == "Page")
var myPageName = myPage.name;
else var myPageName = myPage.pages[0].name + " [Outside page!]"; // Textrahmen auf Montagefläche

myData = "\t" + "\t" + "\t" + "\t" + "\t" + myRating + "\t" + theFiles[myCounter].name + "\t" + myPPI + " dpi" + "\t" + myWidth + " x " + myHeight + " cm" + "\t" + mySpace + "\t" + myLinkType + "\t" + myImagePath + "\r";
f.writeln(myData);
}
f.close();

function getPage(myObject)
{
i +=1;
if ((myObject.constructor.name == "Page") || (myObject.constructor.name == "Spread"))
return myObject


if ( myObject.constructor.name == "Character")
{
if ((app.version +"").substr(0,1) == "4") return getPage(myObject.parentTextFrames[0])
else if ((app.version +"").substr(0,1) == "3") return getPage(myObject.parentTextFrame)
}

return getPage(myObject.parent)

X

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

26. Feb 2012, 15:57
Beitrag # 2 von 12
Beitrag ID: #490768
Bewertung:
(11231 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

für ID's linkXMP -> kein Rating.

Ein Rating könntest Du in der Bridge abfragen.
Leider gibt es sehr viele namespaces in denen Metadaten stecken können ...

Code
 var thumb= new Thumbnail (File ('~/Desktop/alemHinter.jpg')); //Hier Dein Beispieldateipfad ... 
var md = thumb.metadata;
md.synchronousMetadata;
var nameSpaces = new Array ("http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/", "http://ns.adobe.com/exif/1.0/", "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/", "http://purl.org/dc/elements/1.1/", "http://ns.adobe.com/tiff/1.0/", "http://ns.adobe.com/xap/1.0/", "http://ns.adobe.com/xap/1.0/mm/", "http://ns.adobe.com/xap/1.0/bj/", "http://ns.adobe.com/xap/1.0/t/pg/", "http://ns.adobe.com/photoshop/1.0/");
for (var i = 0; i < nameSpaces.length; i++) {
md.namespace = nameSpaces[i]
alert(md.Rating);
thumb.refresh()
}

Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#490765]

Script mit XMP Export: Bildbewertung

buehda
Beiträge gesamt: 59

26. Feb 2012, 16:41
Beitrag # 3 von 12
Beitrag ID: #490769
Bewertung:
(11212 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Danke für deine Antwort. Ich hab dich so verstanden:
- Mache ein Script mit deinem Code, ersetze den Dateipfad mit einem eigenen
- script starten > es sagt mir welchen namespace ich verwenden muss.

Bei mir kommt dann die Fehlermeldung "Thumbnail hat keinen Konstruktor" – ich komm nicht drauf, was falsch ist, und habe nichts bezüglich Konstruktor herausfinden können.

Kannst du mir noch etwas weiterhelfen?
Gruss buehda


(Verwende CS 4 auf OSX)


als Antwort auf: [#490768]

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

26. Feb 2012, 17:22
Beitrag # 4 von 12
Beitrag ID: #490772
Bewertung:
(11193 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi,

aus dem ESTK gestartet muss target die Adobe Bridge sein.
Oder "# target Bridge" an den Anfang des Scriptes setzen.

Die namespaces entsprechen versch. Standards mit denen Metadaten in Dateien gespeichert sein können ...

Das ganze wird Dir im Bezug auf Dein Vorhaben keine einfache Hilfe sein, da man in einem *.jsx nicht einfach mehrere Applikationen adressieren kann (Hierfür hat Adobe Bridgetalk zur verfügung gestellt). in AppleScript wäre das ohne weiteres möglich.

Wenn Du auf dem Mac werkelst, wäre es unter Umständen auch einfacher mit dem "Exif Tool" zu arbeiten ... oder Du verzichtest einfach auf Metadaten die ID mit linkMetadata nicht bereitstellt -> http://jongware.mit.edu/...pc_LinkMetadata.html

Ich glaube, diese Aussagen stimmen soweit ...

Lieben Gruß

Hans-Gerd Claßen
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#490769]

Script mit XMP Export: Bildbewertung

buehda
Beiträge gesamt: 59

28. Feb 2012, 21:23
Beitrag # 5 von 12
Beitrag ID: #490899
Bewertung:
(11081 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Meine späte Antwort: Danke für die Hinweise. Scheint komplizierter zu sein als ich dachte. Und schade, dass beim linkXMP das Rating nicht drin ist.

Immerhin hab ich jetzt rausgefunden, dass meine Bewertungen, die ich den Bildern in Bridge zugewiesen habe, in folgendem Namespace gespeichert sind: http://ns.adobe.com/xap/1.0/

Wie weit der Weg von JavaScript zum Applescript ist, davon hab ich leider keine Ahnung.

Eine Möglichkeit wäre natürlich, dass mein Script für die Verwendung in Bridge umgewandelt wird und jeweils alle ausgewählten Bilder im aktiven Bridge-Fenster anspricht.

Ich muss allerdings noch einiges rumprobieren, bis ich das hinkriege – wenn aber jemand schon einen Lösungsweg parat hat, bin ich sehr interessiert. (vielleicht gibts dann einen neuen Thread mit konkreten Fragen von mir...)

Gruss buehda


als Antwort auf: [#490772]

Script mit XMP Export: Bildbewertung

Martin Fischer
  
Beiträge gesamt: 12192

29. Feb 2012, 08:04
Beitrag # 6 von 12
Beitrag ID: #490913
Bewertung:
(11049 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo buehda,

Antwort auf: Immerhin hab ich jetzt rausgefunden, dass meine Bewertungen, die ich den Bildern in Bridge zugewiesen habe, in folgendem Namespace gespeichert sind: http://ns.adobe.com/xap/1.0/


Gegeben ein Link a_link kannst Du das Rating damit folgendermaßen ermitteln.
Code
a_link.linkXmp.getProperty("http://ns.adobe.com/xap/1.0/", "xmp:Rating"); 


Beispiel:
Code
var _rating = new Array; 
var _links = app.activeDocument.links;
for (var i = 0; i < _links.length; i++)
{
try
{
_rating.push(_links[i].name + ': ' + _links[i].linkXmp.getProperty("http://ns.adobe.com/xap/1.0/", "xmp:Rating"));
}
catch(e)
{
_rating.push(_links[i].name + ': ' + e);
}
}
alert( 'Rating:\n' + _rating.join('\n'));


Siehe auch Storing custom data into InDesign file via XMP und die Links

Extract Metadata with Adobe XMP [Part 1]
Extract Metadata with Adobe XMP [Part 2]
Extract file preview stored in Adobe XMP data
Fill InDesign XMP info from document content

Viele Grüße
Martin




als Antwort auf: [#490899]
(Dieser Beitrag wurde von Martin Fischer am 29. Feb 2012, 08:23 geändert)

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

29. Feb 2012, 08:24
Beitrag # 7 von 12
Beitrag ID: #490915
Bewertung:
(11039 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Martin,

sehr cool, wer lesen kann ist halt klar im Vorteil ;-)

Danke! :) Kann ich auch brauchen!

Lieben Gruß

Hans-Gerd Claßen

Code
string getProperty (namespace: string, path: string) 
Gets the XMP property value associated with the specified path.
Parameter Type Description
namespace string The namespace of the property.
path string The specified path.

Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#490913]

Script mit XMP Export: Bildbewertung

Martin Fischer
  
Beiträge gesamt: 12192

29. Feb 2012, 08:29
Beitrag # 8 von 12
Beitrag ID: #490917
Bewertung:
(11038 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Hans,

es ist schon ne Weile her, da habe ich mal mit der Ermittlung der Metadaten aus verknüpften Bildern experimentiert. Die Ergebnisse habe ich damals im Premium-Forum veröffentlicht.

Hier der Beitrag aus [InDesign CS3 JS] Ermittlung von Metadaten von verknüpften Bildern:

Auf der Suche nach einer Möglichkeit, Metadaten von verknüpften Bildern zu ermitteln, meinte ich erst per Cross-Scripting auf Bridge und dessen Möglichkeiten, Metadaten auszuwerten, zurückgreifen zu müssen: <Zugriff auf Bridge aus JavaScript für InDesign>.

Bald stellte sich heraus, dass der Zugriff auf die Metadaten auch direkt aus InDesign möglich ist.

Aus dieser Aufgabenstellung hat sich das unten stehende Skript entwickelt.
Es ermittelt diverse Metadaten (neben den Daten aus der Link-Property 'linkXmp' auch Daten nach den Schemas IPTC, Photoshop, Tiff, Exif) aus den verknüpften Bildern des aktiven Dokuments in InDesign.
Die Daten werden in eine Textdatei auf dem Schreibtisch geschrieben.
Der Name der Textdatei: 'Metadaten_' + [Name des InDesign-Dokuments] + [Suffix '.txt'] (also z.B. 'Metadaten_Unbenannt-1.txt).

Mit dem Schema CameraRaw habe ich momentan noch Schwierigkeiten.
Der Zugriff ist zwar definiert, aber ich erhalte keine Daten.
Vielleicht kann mich gelegentlich jemand auf den Haken aufmerksam machen.

Code
// metaDataOfLinks.jsx 
//DESCRIPTION: Ermittelt Metadaten von verknüpften Bildern und erstellt eine Übersicht auf dem Schreibtisch.
// Martin Fischer 10/2008

var myLinkXmpArray = ["author", "copyrightInfoURL", "copyrightNotice", "copyrightStatus ", "creationDate", "creator", "description", "documentTitle", "format", "jobName", "keywords", "modificationDate", "serverURL"];
var myIPTCArray = ["CiAdrCity", "CiAdrCtry", "CiAdrExtadr", "CiAdrPcode", "CiAdrRegion", "CiEmailWork", "CiTelWork", "City", "CiUrlWork", "CopyrightNotice", "Country", "CountryCode", "Creator", "CreatorContactInfo", "CreatorJobtitle", "DateCreated", "Description", "DescriptionWriter", "Headline", "Instructions", "IntellectualGenre", "JobID", "Keywords", "Location", "Provider", "Province-State", "RightsUsageTerms", "Scene", "Source", "SubjectCode", "Title"];
var myPSArray = ["photoshop:AuthorsPosition", "photoshop:CaptionWriter", "photoshop:Category", "photoshop:City", "photoshop:Country", "photoshop:Credit", "photoshop:DateCreated", "photoshop:Headline", "photoshop:Instructions", "photoshop:Source", "photoshop:State", "photoshop:SupplementalCategories", "photoshop:TransmissionReference", "photoshop:Urgency"];//var myPSArray = ["photoshop:AuthorsPosition", "CaptionWriter", "Category", "City", "Country", "Credit", "DateCreated", "Headline", "Instructions", "Source", "State", "SupplementalCategories", "TransmissionReference", "Urgency"];
var myTiffArray = ["tiff:ImageWidth", "tiff:ImageLength", "tiff:BitsPerSample", "tiff:Compression", "tiff:PhotometricInterpretation", "tiff:Orientation", "tiff:SamplesPerPixel", "tiff:PlanarConfiguration", "tiff:YCbCrSubSampling", "tiff:YCbCrPositioning", "tiff:XResolution", "tiff:YResolution", "tiff:ResolutionUnit", "tiff:TransferFunction", "tiff:WhitePoint", "tiff:PrimaryChromaticities", "tiff:YCbCrCoefficients", "tiff:ReferenceBlackWhite", "tiff:DateTime", "tiff:ImageDescription", "tiff:MakeProperName", "tiff:Model", "tiff:Software", "tiff:Artist", "tiff:Copyright"];
var myExifArray = ["exif:ExifVersion", "exif:FlashpixVersion", "exif:ColorSpace", "exif:ComponentsConfiguration", "exif:CompressedBitsPerPixel", "exif:PixelXDimension", "exif:PixelYDimension", "exif:UserComment", "exif:RelatedSoundFile", "exif:DateTimeOriginal", "exif:DateTimeDigitized", "exif:ExposureTime", "exif:FNumber", "exif:ExposureProgram", "exif:SpectralSensitivity", "exif:ISOSpeedRatings", "exif:OECF", "exif:ShutterSpeedValue", "exif:ApertureValue", "exif:BrightnessValue", "exif:ExposureBiasValue", "exif:MaxApertureValue", "exif:SubjectDistance", "exif:MeteringMode", "exif:LightSource", "exif:Flash", "exif:FocalLength", "exif:SubjectArea", "exif:FlashEnergy", "exif:SpatialFrequencyResponse", "exif:FocalPlaneXResolution", "exif:FocalPlaneYResolution", "exif:FocalPlaneResolutionUnit", "exif:SubjectLocation", "exif:ExposureIndex", "exif:SensingMethod", "exif:FileSource", "exif:SceneType", "exif:CFAPattern", "exif:CustomRendered", "exif:ExposureMode", "exif:WhiteBalance", "exif:DigitalZoomRatio", "exif:FocalLengthIn35mmFilm", "exif:SceneCaptureType", "exif:GainControl", "exif:Contrast", "exif:Saturation", "exif:Sharpness", "exif:DeviceSettingDescription", "exif:SubjectDistanceRange", "exif:ImageUniqueID", "exif:GPSVersionID", "exif:GPSLatitude", "exif:GPSLongitude", "exif:GPSAltitudeRef", "exif:GPSAltitude", "exif:GPSTimeStamp", "exif:DateTimeOriginal,", "exif:DateTimeDigitized.", "exif:GPSTimeStamp", "exif:GPSSatellites", "exif:GPSStatus", "exif:GPSMeasureMode", "exif:GPSDOP", "exif:GPSSpeedRef", "exif:GPSSpeed", "exif:GPSTrackRef", "exif:GPSTrack", "exif:GPSImgDirectionRef", "exif:GPSImgDirection", "exif:GPSMapDatum", "exif:GPSDestLatitude", "exif:GPSDestLongitude", "exif:GPSDestBearingRef", "exif:GPSDestBearing", "exif:GPSDestDistanceRef", "exif:GPSDestDistance", "exif:GPSProcessingMethod", "exif:GPSAreaInformation"];
var myCameraRawArray = ["crs:AutoBrightness", "crs:AutoContrast", "crs:AutoExposure", "crs:AutoShadows", "crs:BlueHue", "crs:BlueSaturation", "crs:Brightness", "crs:CameraProfile", "crs:ChromaticAberrationB", "crs:ChromaticAberrationR", "crs:ColorNoiseReduction", "crs:Contrast", "crs:CropTop", "crs:CropLeft", "crs:CropBottom", "crs:CropRight", "crs:CropAngle", "crs:CropWidth", "crs:CropHeight", "crs:CropUnits", "crs:Exposure", "crs:GreenHue", "crs:GreenSaturation", "crs:HasCrop", "crs:HasSettings", "crs:LuminanceSmoothing", "crs:RawFileName", "crs:RedHue", "crs:RedSaturation", "crs:Saturation", "crs:Shadows", "crs:ShadowTint", "crs:Sharpness", "crs:Temperature", "crs:Tint", "crs:ToneCurve", "crs:ToneCurveName", "crs:Version", "crs:VignetteAmount", "crs:VignetteMidpoint", "crs:WhiteBalance"];

var myInfo = new Array;
var myDoc = app.activeDocument;
var myLinks = app.documents[0].links;

for ( i = 0; i < myLinks.length; i++)
getMetaData ( myLinks[i] );

writeData ( 'Metadaten zu ' + myDoc.name + '\r-----------\r\r' + myInfo.join ( '\r\r'), File ('~/Desktop/Metadaten_' + myDoc.name.replace(/.indd$/, '') + '.txt'));

// ===============================================================
// Funktionen
// ===============================================================
function getMetaData ( aLink )
{
var myLinkXmp = aLink.linkXmp.properties.toSource().replace( /^\(\{/,'' ).replace (/\)\}$/,'').replace( /parent.+$/,'').replace(/:/g, ':\t').split( ', ');
var myString = aLink.name;
myString += loopLinkXmp ( aLink, myLinkXmpArray );
myString += loopArray ( aLink, "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/", "Iptc4xmpCore:CreatorContactInfo/Iptc4xmpCore:", myIPTCArray);
myString += loopArray ( aLink, "http://ns.adobe.com/photoshop/1.0/", "", myPSArray );
myString += loopArray ( aLink, "http://ns.adobe.com/tiff/1.0/", "", myTiffArray );
myString += loopArray ( aLink, "http://ns.adobe.com/exif/1.0/", "", myExifArray );
myString += loopArray ( aLink, "http://ns.adobe.com/camera-raw-settings/1.0/", "", myCameraRawArray );
myInfo.push( myString.replace( /, $/,'') );
}

function loopArray( aLink, s1, s2, anArray )
{
var temp = '\r\t--- ' + s1 + ' ---\r\t';
for ( var a = 0; a < anArray.length; a++)
{
try {
var theEvalString = 'aLink.linkXmp.getProperty(\"' + s1 + '\", \"' + s2 + anArray[a] + '\")';
var myCode = eval( theEvalString );
if ( myCode != '' )
temp += '[' + anArray[a] + ']\t' + myCode + '\r\t';
} catch (e){ //temp +=e + '\r'
}
}
return temp;
}

function loopLinkXmp( aLink, anArray )
{
var temp = '\r\t--- LinkMetadata ---\r\t';
for ( var a = 0; a < anArray.length; a++)
{
try {
var theEvalString = 'aLink.linkXmp.' + anArray[a] ;
var myCode = eval( theEvalString );
if ( myCode != '' )
temp += '[' + anArray[a] + ']\t' + myCode + '\r\t';
} catch (e){ //temp +=e + '\r'
}
}
return temp;
}

function writeData ( aData, theFile )
{
theFile.open ( 'w', 'Text', 'R*ch' );
theFile.encoding = 'UTF-8';
theFile.write ( aData );
theFile.close ();
}


Weitere Quellen zum Thema:
- Adobe XMP Developer Center
- XMP Specification (PDF, 934 KBk)

Viele Grüße
Martin




als Antwort auf: [#490915]
(Dieser Beitrag wurde von Martin Fischer am 29. Feb 2012, 08:34 geändert)

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

29. Feb 2012, 20:47
Beitrag # 9 von 12
Beitrag ID: #491020
Bewertung:
(10982 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besten Dank :)

Hier mal alles was exifTool so auswirft ...
http://www.sno.phy.queensu.ca/~phil/exiftool/

Code
my main() 

on main()
set idArray to my getIdDocNameAndLinkedFiles()
set allFilesInfo to my getExif(idArray)
writeToFile(allFilesInfo, item 1 of idArray)
end main

on getIdDocNameAndLinkedFiles()
tell application "Adobe InDesign CS3"
set theDoc to active document
set idArray to {name of theDoc, file path of (every link of theDoc)}
end tell
return idArray
end getIdDocNameAndLinkedFiles

on getExif(idArray)
set tid to AppleScript's text item delimiters
set exifString to item 1 of idArray & return & return

repeat with i from 1 to count of (item 2 of idArray)
set filepath to item i of (item 2 of idArray)
set AppleScript's text item delimiters to ":"
set fileName to text item -1 of filepath
set AppleScript's text item delimiters to tid

set exifData to do shell script "exiftool -a -u -g1 " & quoted form of POSIX path of filepath
set exifString to exifString & fileName & return & exifData & return & return
end repeat

return exifString
end getExif


on writeToFile(allFilesInfo, docName)
set pathToMetaFile to ((path to desktop) as text) & (text 1 thru -6 of docName) & ".txt"
try
open for access file the pathToMetaFile with write permission
write (allFilesInfo & return) to file the pathToMetaFile starting at eof
close access file the pathToMetaFile
on error
try
close access file the pathToMetaFile
end try
end try
end writeToFile


Lieben Gruß

Hans-Gerd Claßen
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#490917]

Script mit XMP Export: Bildbewertung

buehda
Beiträge gesamt: 59

4. Mär 2012, 11:21
Beitrag # 10 von 12
Beitrag ID: #491187
Bewertung:
(10841 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Vielen Dank euch beiden für die Hilfe!

Code
a_link.linkXmp.getProperty("http://ns.adobe.com/xap/1.0/",  "xmp:Rating"); 

So klappt es super!


Das Applescript von Hans konnte ich mir noch nicht genauer anschauen/anpassen – funktioniert aber soweit!

Jetzt habe ich also eine TXT-Tabelle mit allen nötigen Infos zu meinen Bildern, inklusive Rating. Und kann das nachher mit Datenzusammenführung per Mausklick in einen Bildkatalog verwandeln, der mir eine Übersicht über alle Bilder und deren Eigenschaften gibt.

Noch eine Detailfrage zu Bildgrössen:
Im Moment wird bei meinem Script die effektive Grösse des Bildes im Dokument angegeben:
Code
	var myBounds = theFiles[myCounter].parent.geometricBounds;       
var myWidth = Math.round((myBounds[3]-myBounds[1])/10);
var myHeight = Math.round((myBounds[2]-myBounds[0])/10);

Kann ich auch die "tatsächliche" Grösse des Bildes rausfinden? Damit meine ich Höhe und Breite des Bildes, wenn es mit "PPI effektiv = 300" platziert würde (mich interessiert nur die Grösse bei 300dpi weil das die benötigte Auflösung zum drucken ist).

Angenommen ein Bild hat folgende Masse:
Breite: 2400px
Höhe: 3000px
Auflösung (PPI tatsächlich): egal

tatsächliche Breite bei 300dpi wäre: 2400 / 300 x 2.54 = 20.32cm
tatsächliche Höhe bei 300dpi wäre: 3000 / 300 x 2.54 = 25.4cm

Zu meinem Ziel fehlen also nur noch die Variablen, die die Höhe und Breite eines platzierten Dokuments in Pixel ausgeben. Ich finds nicht raus, kann mir jemand nachhelfen?


Gruss buehda


als Antwort auf: [#490913]

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

5. Mär 2012, 08:11
Beitrag # 11 von 12
Beitrag ID: #491214
Bewertung:
(10793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen,

Du hast immo die effektiven PPi und Höhe sowie Breite.
Den Einheiten deines Dokus entsprechend sollte sich daraus auch die Höhe sowie Breite bei 300 ppi berechnen lassen ( Dreisatz).

Lieben Gruß

Hasns-Gerd Claßen
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#491187]

Script mit XMP Export: Bildbewertung

buehda
Beiträge gesamt: 59

5. Mär 2012, 22:39
Beitrag # 12 von 12
Beitrag ID: #491279
Bewertung:
(10739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

Du hast recht, das würde gehen – ich möchte aber lieber die "wahren" Pixelwerte von Höhe und Breite brauchen, damit es keine Rundungsfehler gibt.

Habs jetzt doch noch rausgefunden, Martin hat es ja auf dem Silbertablett serviert, im Script metaDataOfLinks.jsx:

Code
	try    
{
var myWidthPx = theFiles[myCounter].linkXmp.getProperty("http://ns.adobe.com/exif/1.0/", "exif:PixelXDimension");
var maxWidthCm = Math.round(myWidthPx/300*2.54)
}
catch (e)
{
var maxWidthCm = "--";
}

try
{
var myHeightPx = theFiles[myCounter].linkXmp.getProperty("http://ns.adobe.com/exif/1.0/", "exif:PixelYDimension");
var maxHeightCm = Math.round(myHeightPx/300*2.54)
}
catch (e)
{
var maxHeightCm = "--";
}


Super! Nochmal vielen Dank euch beiden!
Gruss buehda


als Antwort auf: [#491214]
X
Hier Klicken

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
19.11.2019 - 20.11.2019

Düsseldorf
Dienstag, 19. Nov. 2019, 09.30 Uhr - Mittwoch, 20. Nov. 2019, 17.30 Uhr

Schulung, Seminar

Unsere Schulung „Zweitägige Weiterbildung zum Cleverprinting-Reinzeichner“ bietet allen Anwendern, die in Agenturen oder freiberuflich als Reinzeichner bzw. in der Reinzeichnung arbeiten, topaktuelles Grafik- und PrePress-Fachwissen rund um das Thema „Druckdatenerstellung mit InDesign, Photoshop, Acrobat“.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-cleverprinting-reinzeichner/

Zweitägige Weiterbildung zum Cleverprinting-Reinzeichner
Veranstaltungen
20.11.2019

Düsseldorf
Mittwoch, 20. Nov. 2019, 09.30 Uhr

Schulung, Seminar

Sie sind erfahren im Umgang mit InDesign? Prima, aber Sie wollen noch mehr wissen? Wir machen Sie an einem Tag zum Experten: Der InDesign Expertentag zum Thema „automatisierte Katalog- und Prospektproduktion“ bietet Ihnen ein prall gefülltes Paket mit interessanten Themen und Know-how rund um die geniale Layoutsoftware von Adobe.

Nein

Organisator: Cleverprinting.de

https://www.cleverprinting.de/schulungen/schulung-indesign-automatisierung/

InDesign Expertentag Automatisierung