Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
In eigener Sache!
Liebe Mitglieder, liebe Besucher und Gäste
ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
Bitte hier weiterlesen ...
Hab' im Grunde nicht viel verändert, falls Dich das tröstet. ;-)
Die hochgeladene Datei habe ich nochmal verändert: Beim Aufruf von speichern() hatte ich fälschlicherweise einen Schrägstrich zwischen die Bestandteile gestellt, der aber bereits im relativePath-Bestandteil vorhanden ist und somit doppelt war. PS tolerierte es aber anscheinend.
else if (file instanceof File && file.name.match(/\.jpg$/i))
{
file.copy (targetFolder + "/" + relativePath + "/" + file.name);
}
Wenn nun die Bilder im Hauptverzeichnis heißen wie im Unterverzeichnis, dann kopiert er sie nicht, wenn sie einen anderen Namen haben kein Problem?!
Ich glaube da fehlt einfach die ggf. notwendige vorherige Erzeugung des Zielordners. Findet ja sonst jetzt in sichern() statt.![]()
var kopie = new File()
kopie.changePath(targetFolder)
kopie.changePath(file.getRelativeURI (selectedFolder)) // rel.; incl. Dateinamen
var zielOrdner = new Folder(kopie.path)
if (!zielOrdner.exists) zielOrdner.create()
file.copy (kopie);
Man jetzt steige ich langsam auch durch. Ich bin nie auf die Idee gekommen mit file.name mir den Ordnernamen ausgeben zulassen, ich habe immer mit file.path hantiert und dann habe ich ja immer den absoluten Pfad.
sauberer/sicherer/portabler/schöner(?)Code:var kopie = new File() kopie.changePath(targetFolder) kopie.changePath(file.getRelativeURI (selectedFolder)) // rel.; incl. Dateinamen var zielOrdner = new Folder(kopie.path) if (!zielOrdner.exists) zielOrdner.create() file.copy (kopie);
activeDocument.convertProfile("sRGB IEC61966-2.1", Intent.RELATIVECOLORIMETRIC);
// Voreinstellungen: Keine Farbprofilwarnung und die Masseinheit auf Pixel einstellen.
var startRulerUnits = app.preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
app.displayDialogs = DialogModes.NO
// Dateien per Dialogfenster auswaehlen und Zielverzeichnis waehlen
var selectedFolder = Folder.selectDialog("Quellverzeichnis suchen");
var targetFolder = Folder.selectDialog("Zielverzeichnis suchen");
// Ordner abarbeiten
checkFolder(selectedFolder, '');
// Voreinstellungen wieder zurückstellen von Zeile 6 und folgende
app.preferences.rulerUnits = startRulerUnits;
// Bildverarbeitung
function checkFolder(folder, relativePath)
{
var fileList = folder.getFiles();
for (var i = 0; i < fileList.length; i++)
{
var file = fileList[i];
if(file instanceof File && file.name.match(/\.psd$/i))
{
// Dateiname ermitteln und Datei mit File-Objekt oeffnen
open(file);
// Anweisungen, die das Bild umwandeln, damit es ohne
// Dialogfenster als JPEG gespeichert werden kann
activeDocument.flatten();
activeDocument.channels.removeAll();
activeDocument.bitsPerChannel = BitsPerChannelType.EIGHT;
activeDocument.convertProfile("sRGB IEC61966-2.1", Intent.RELATIVECOLORIMETRIC);
// Bild für Preisliste speichern
bildgroesse();
activeDocument.activeLayer.applyUnSharpMask(200, 0.2, 0);
speichern(targetFolder + relativePath, file.name);
// activeDocument.rotateCanvas(90);
// Dokument schliessen
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
else if (file instanceof File && file.name.match(/\.jpg$/i))
{
var folder = new Folder(targetFolder + relativePath)
if (!folder.exists) folder.create()
file.copy (targetFolder + "/" + relativePath + "/" + file.name);
}
else if (file instanceof Folder)
{
var folder = new Folder(targetFolder + relativePath)
if (!folder.exists) folder.create()
checkFolder(file, relativePath + '/' + file.name);
}
}
}
function bildgroesse(){
// die Abmessungen des gerdade geöffneten Dokuments ermitteln
var dukuBreit = activeDocument.width.value;
var dokuHoch = activeDocument.height.value;
// Querformat als Ergebnis der Pruefung:
if(dukuBreit = dokuHoch){
activeDocument.resizeImage(480, undefined, 72, ResampleMethod.BILINEAR);
//activeDocument.rotateCanvas(-90);
}
else{
activeDocument.resizeImage(undefined, 680, 72, ResampleMethod.BILINEAR);
//activeDocument.rotateCanvas(-90);
}
}
function speichern(path, filename)
{
if (documents.length > 0)
{
var folder = new Folder(path)
if (!folder.exists) folder.create()
var splitname = filename.split(".");
var myFile = new File(path + "/" + splitname[0] + ".jpg");
var webJpgOptions = new ExportOptionsSaveForWeb();
webJpgOptions.format = SaveDocumentType.JPEG;
webJpgOptions.optimized = true;
webJpgOptions.quality = 60;
activeDocument.exportDocument(myFile, ExportType.SAVEFORWEB, webJpgOptions);
File = null; ExportOptionsSaveForWeb = null;
}
}
Schöner nicht unbedingt, dafür aber irgendwo "eleganter", das werde ich morgen noch probieren. Bisher habe ich es wirklich einfach jedesmal hingeschrieben.
Ich hab gerade mal meine sRGB kopiererei optimiert. Statt des ScriptListener Blocks geht auch einfach:
das ist in jedemfall schönerCode:activeDocument.convertProfile("sRGB IEC61966-2.1", Intent.RELATIVECOLORIMETRIC);
.