[GastForen Programmierung/Entwicklung JavaScript Photoshop CS6, Zugriff auf API via VB6

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

2. Nov 2016, 19:31
Beitrag # 1 von 13
Bewertung:
(20396 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo miteinander,

bitte verzeiht mir, dass ich diese Frage hier stelle. Ich weiß, dass sie streng genommen off-topic ist -- aber ich weiß nicht, wo sonst ich einen hilfsbereitsn Menschen finden könnte, der sich damit auskennt.

Also: Ich möchte von einem VB6-Programm auf die API von PS CS6 zugreifen. Insbesondere möchte ich die Qualität beim Abspeichern von JPGs einstellen.

Dafür gibt es ein Objekt namens JPEGSaveOptions. Alle Beispiele, die ich in Foren gefunden habe, sind JavaScripte und betreffen zudem ältere PS-Versionen, helfen mir also nicht.

Wie bekomme ich dieses Objekt und seine Eigenschaft Quality von VB6 aus in den Griff? Was immer ich versuche -- alles endet in Fehlermeldungen wie "Automatisierungsfehler", "ActiveX-Komponente kann dieses Objekt nicht erstellen", "Server nicht verfügbar" oder so ähnlich.

Für jeden Hinweis dankbar,
Wolfgang

(Dieser Beitrag wurde von helvetica am 2. Nov 2016, 19:33 geändert)
X

Photoshop CS6, Zugriff auf API via VB6

pixxxelschubser
Beiträge gesamt: 1708

2. Nov 2016, 22:31
Beitrag # 2 von 13
Beitrag ID: #553649
Bewertung:
(20358 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
zuerst einmal: von VB6 habe ich null Ahnung. Ich verwende auch kein VBS. Und auch kein VB-Net oder andere VB-Derivate.

Ich bevorzuge plattformübergreifend [JS]

Aber VBS-Beispiele finden sich doch zuhauf. Hier ein bisschen VBS-Syntax. Keine Ahnung, ob und wie das mit VB6 kompatibel ist. Aber vielleicht hilft's ja trotzdem ein bisschen.

Code
Set jpgSaveOptions = CreateObject( "Photoshop.JPEGSaveOptions" ) 
jpgSaveOptions.EmbedColorProfile = True
jpgSaveOptions.FormatOptions = 1 ' psStandardBaseline
jpgSaveOptions.Matte = 1 ' psNoMatte
jpgSaveOptions.Quality = 1
outFileName = convertedFolderRef.Path & "\Temp.jpg"
docRef.SaveAs outFileName, jpgSaveOptions, True, extType



als Antwort auf: [#553644]
(Dieser Beitrag wurde von pixxxelschubser am 2. Nov 2016, 22:32 geändert)

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

2. Nov 2016, 23:02
Beitrag # 3 von 13
Beitrag ID: #553650
Bewertung:
(20345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,

in VB6 müsste das m.M. so aussehen:

Dim jpgSaveOptions As New Photoshop.JPEGSaveOptions
jpgSaveOptions.Quality = 3

Der Dim-Befehl wird von PS anstandslos akzeptiert.

'jpgSaveOptions.Quality = 3' verursacht die Fehlermeldung 'Objekterstellung durch ActiveX-Komponente' nicht möglich.

Auf meinem PC sind die folgenden Verweise installiert:

Adobe Photoshop CS6 Type Library
Adobe Photoshop CS6 Object Library

Diese Verweise müssten eigentlich reichen, tun es aber offenbar nicht.

Vielen Dank für Deinen Hilfeversuch!

Gruß
Wolfgang


als Antwort auf: [#553649]

Photoshop CS6, Zugriff auf API via VB6

pixxxelschubser
Beiträge gesamt: 1708

2. Nov 2016, 23:06
Beitrag # 4 von 13
Beitrag ID: #553651
Bewertung:
(20343 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dim jpgSaveOptions


als Antwort auf: [#553650]

Photoshop CS6, Zugriff auf API via VB6

Henry
Beiträge gesamt: 967

3. Nov 2016, 09:02
Beitrag # 5 von 13
Beitrag ID: #553656
Bewertung:
(20207 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ helvetica ] …aber ich weiß nicht, wo sonst ich einen hilfsbereitsn Menschen finden könnte, der sich damit auskennt.…

Besser aufgehoben wäre der Thread zumindest im Photoshop-Unterforum.
Dort gibt es nämlich sogar schon eine ähnliche Problemstellung mit VBScript, siehe:
http://www.hilfdirselbst.ch/...-Script_P542141.html
Vielleicht hilft dir das auch weiter???


als Antwort auf: [#553644]

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

3. Nov 2016, 10:49
Beitrag # 6 von 13
Beitrag ID: #553658
Bewertung:
(20158 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Henry,

danke für Deine Hinweise. Hat leider alles nichts gebracht. Mittlerweile habe ich die Ursache des Problems herausgefunden: VB6 zeigt zwar einen Verweis auf die 'Adobe Photshop CS6 Object Library' an -- doch die entsprechende Datei fehlt. Im 'Verweise'-Dialog von VB6 kann ich (weil der Pfad zu lang ist) nur erkennen, dass diese Datei sich im CS6-Programmverzeichnis, Unterverzeichnis 'Required', befinden soll. Aber weder in diesem Unterverzeichnis noch in dessen Unterverzeichnissen ist eine Klassenbibliothek zu finden.

Keine Ahnung, wie ich den Namen dieser DLL herausfinden kann, geschweige denn, wo ich diese Datei herunterladen kann.

Photoshop ist wirklich ein hochprofessionelles Programm...

Nochmals danke an alle. Ich geb's jetzt auf und schaue mich verschärft nach einer Alternative zu PS um.

Gruß
Wolfgang


als Antwort auf: [#553656]

Photoshop CS6, Zugriff auf API via VB6

Henry
Beiträge gesamt: 967

3. Nov 2016, 11:41
Beitrag # 7 von 13
Beitrag ID: #553660
Bewertung:
(20135 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
wenn die Library von VB-Studio aufgelistet wird, dann ist die auch vorhanden.
Die Datei heißt übrigens "ScriptingSupport.8li".
Siehe auch z.B. hier:
http://www.xtremevbtalk.com/...ex.php/t-241235.html

Eine Alternative wäre Corel Photopaint - aber da sieht's mit VB-Dokumentation/Support genauso schlecht aus?!


als Antwort auf: [#553658]

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

3. Nov 2016, 13:44
Beitrag # 8 von 13
Beitrag ID: #553666
Bewertung:
(20075 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Henry,

Zitat wenn die Library von VB-Studio aufgelistet wird, dann ist die auch vorhanden.
Die Datei heißt übrigens "ScriptingSupport.8li"


Ja, ich habe sie gefunden, und das ist offenbar auch die Datei, die von VB-Studio aufgelistet wird (eine Datei des Typs .8li hätte ich an dieser Stelle nicht erwartet. Eigentlich lässt VB nur die Dateitypen .olb, .tlb, .dll, .exe und .ocx zu).

Also: Die Objektbibliothek ist tatsächlich vorhanden. Trotzdem funktioniert es nicht, warum auch immer. Ich werde wohl JS lernen müssen. Ist mal was anderes.

Zitat Eine Alternative wäre Corel Photopaint - aber da sieht's mit VB-Dokumentation/Support genauso schlecht aus?!


Falls diese Software überhaupt eine API besitzt.

Gruß
Wolfgang


als Antwort auf: [#553660]

Photoshop CS6, Zugriff auf API via VB6

Henry
Beiträge gesamt: 967

3. Nov 2016, 15:49
Beitrag # 9 von 13
Beitrag ID: #553672
Bewertung:
(20023 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Corel liefert sogar bei seinen Vollversionen den VBA-Editor von Microsoft gleich mit!
Hier die API-Doku von Photo-Paint:
https://community.coreldraw.com/sdk/api/pp/18

(aber ohne Gewähr auf Vollständigkeit oder 100%ige Richtigkeit ;-)


als Antwort auf: [#553666]

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

3. Nov 2016, 18:51
Beitrag # 10 von 13
Beitrag ID: #553681
Bewertung:
(19966 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Henry,

danke für diese hochinteressante Information, das werde ich mir auf jeden Fall genauer anschauen!

Ich bin gespannt, ob es auch für AfterShot eine dokumentierte API gibt.

Hintergrund: Für meine Fotoverwaltung habe ich mir ein VB-Datenbankprogramm gebastelt, das aufs Wesentliche reduziert ist und für meine Zwecke besser funktioniert als alles, was es zu kaufen gibt oder als Freeware angeboten wird.

Eigentlich suche ich bloß einen Raw-Konverter mit einer minimalistischen Benutzeroberfläche, der (insbesondere beim Highlight Recovery) so gut funktioniert wie ACR und der sich von meiner Fotodatenbank aus problemlos fernsteuern lässt. Konkret: Meine Datenbank übergibt ein einzelnes Foto an den Raw-Konverter. Dort bearbeite ich Lichter, Schatten und Kontrast. Dann wird das Bild eventuell noch beschnitten und als JPG abgespeichert. Sollte eigentlich ganz simpel sein... Wenn da nicht die zahllosen Teufel in zahllosen Details wären.

Gruß
Wolfgang


als Antwort auf: [#553672]
(Dieser Beitrag wurde von helvetica am 3. Nov 2016, 18:53 geändert)

Photoshop CS6, Zugriff auf API via VB6

Henry
Beiträge gesamt: 967

4. Nov 2016, 08:53
Beitrag # 11 von 13
Beitrag ID: #553685
Bewertung:
(19874 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Naja, also die "übliche" VBA-Erweiterung gibt es bei Corel (mWn) nur für Photo-Paint, Draw + Designer. Schon dieses "Programmierzeugs" verlangt gehöriges technisches Wissen und es gibt nur wenig verfügbare Informationen.
Und dein sehr individuelles Projektvorhaben ist wohl noch mindestens zwei Kategorien schwieriger einzustufen!

Für Aftershot-Pro werden ja immerhin von Usern/Drittanbietern "Plug-Ins" entwickelt, aber ob dir das weiterhilft:
http://www.aftershotpro.com/...ns/creating-plugins/


als Antwort auf: [#553681]

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

4. Nov 2016, 09:56
Beitrag # 12 von 13
Beitrag ID: #553689
Bewertung:
(19850 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Henry,

das wird ja immer spannender.

Ich werde erst einmal testen, ob man mit AfterShot Raws so entwickeln kann, wie ich mir das vorstelle. Wenn ja, schaue ich mir das SDK einmal an (sofern es kostenlos ist).

Ich werde an dieser Stelle über den Fortgang berichten.

Zitat dein sehr individuelles Projektvorhaben...


Naja, eine Datei per Kommandozeile an ein Programm zu übergeben und dieses Programm ferngesteuert zu veranlassen, die bearbeitete Datei im JPG-Format in ein bestimmtes Verzeichnis zu speichern, kann doch nicht soooo individuell sein -- sollte man meinen. Bis PS CS4 hat das übrigens problemlos funktioniert. Eine Zeitlang sogar mit CS6. Dann ging es plötzlich nicht mehr.

Gruß
Wolfgang


als Antwort auf: [#553685]
(Dieser Beitrag wurde von helvetica am 4. Nov 2016, 09:59 geändert)

Photoshop CS6, Zugriff auf API via VB6

helvetica
Beiträge gesamt: 43

4. Nov 2016, 14:10
Beitrag # 13 von 13
Beitrag ID: #553702
Bewertung:
(19788 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Ich werde an dieser Stelle über den Fortgang berichten.


Meine Begegnung mit AfterShot war nur von kurzer Dauer: Die Spitzlichter-Rekonstruktion von ACR funktioniert sichtbar besser als die von AfterShot. Es liegen keine Welten dazwischen, aber der Unterschied ist mir groß genug, um bei ACR zu bleiben.

Ich werde mich daranmachen, JavaScript zu lernen.


als Antwort auf: [#553689]
X