[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, 13:47
Beitrag # 1 von 12
Bewertung:
(12671 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\[email protected]\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, 14:57
Beitrag # 2 von 12
Beitrag ID: #490768
Bewertung:
(12621 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, 15:41
Beitrag # 3 von 12
Beitrag ID: #490769
Bewertung:
(12602 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, 16:22
Beitrag # 4 von 12
Beitrag ID: #490772
Bewertung:
(12583 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, 20:23
Beitrag # 5 von 12
Beitrag ID: #490899
Bewertung:
(12471 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: 12494

29. Feb 2012, 07:04
Beitrag # 6 von 12
Beitrag ID: #490913
Bewertung:
(12439 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, 07:23 geändert)

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

29. Feb 2012, 07:24
Beitrag # 7 von 12
Beitrag ID: #490915
Bewertung:
(12429 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: 12494

29. Feb 2012, 07:29
Beitrag # 8 von 12
Beitrag ID: #490917
Bewertung:
(12428 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, 07:34 geändert)

Script mit XMP Export: Bildbewertung

-hans-
Beiträge gesamt: 746

29. Feb 2012, 19:47
Beitrag # 9 von 12
Beitrag ID: #491020
Bewertung:
(12372 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, 10:21
Beitrag # 10 von 12
Beitrag ID: #491187
Bewertung:
(12231 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, 07:11
Beitrag # 11 von 12
Beitrag ID: #491214
Bewertung:
(12183 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, 21:39
Beitrag # 12 von 12
Beitrag ID: #491279
Bewertung:
(12129 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

Aktuell

PDF / Print
PDF-XCange_300

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
26.10.2021

Online
Dienstag, 26. Okt. 2021, 10.00 - 10.30 Uhr

Webinar

In unserem ca. 30-minütigen kostenlosen Webinar zeigt Ihnen unser Produktmanager Karsten Schwarze, wie Sie mit ColorLogic ColorAnt, CoPrA und ZePrA einen konsistenten Farbmanagement Workflow aufbauen und die Druckqualität sichern.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=305

Mit ColorLogic ColorAnt & CoPrA & ZePrA zum perfekten Druckergebnis
Veranstaltungen
29.10.2021 - 08.07.2022

Digicomp Academy, Zürich
Freitag, 29. Okt. 2021, 13.00 Uhr - Freitag, 08. Juli 2022, 19.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: 10'500.– zzgl. 7.7% MWST
Dauer: 30 Tage(ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch