[GastForen Betriebsysteme und Dienste HELIOS Helios Scriptserver

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

Helios Scriptserver

Mabusesteve
Beiträge gesamt: 49

16. Aug 2017, 14:45
Beitrag # 1 von 6
Bewertung:
(7768 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Ich habe mit dem Script Assistent ein Script zur Umrechnung von Bildern erstellt. Das läuft und bringt das gewünschte Ergebnis.

Aber er läuft nur wenn das zu bearbeitende Verzeichnis in den Hotfolder kopiert wird. Wenn das Verzeichnis nur in den Hotfolder verschoben wird läuft es nicht los.
Also wenn es auf dem gleichen Heliosvolumen in den Hotfolder geschoben wird passiert nicht, wenn es rein kopiert wird - alles bestens...

Da ich leider kein Scriptkenntnisse habe, kann mir jemand vielleicht einen Tipp geben.

hier noch das script:
#!var/run/runperl -w
# $Id: conversionTemplate.pl,v 1.11 2015/02/16 13:53:21 tom Exp $

#
# Sample configuration
#
my $default_settings = <<'</SETTINGS>'; # Let Perl ignore the settings block
<SETTINGS>
<General
Enable="true"
Hot_Folder="/HotFolderPath"
Include_Subdirectories="false"
User=""
Timeout="600"
/>
<File_Types
Types="TIFF,JPEG,EPSF,8BIM,8BPS,PICT,BMP ,PNGf,..CT,PDF ,JP2 ,RAW "
Suffixes="tif,jpg,eps,psd,pct,bmp,png,sct,pdf,jp2,raw,cr2,nef,arw,dng,orf,raf,pef,sr2,crw,x3f,erf,mef,rw2"
Folder_Changes="false"
/>
<Environment
OUTDIR="DONE"
ERRDIR="ERROR"
CONVNAME_ADDITION="conv"
/>
</SETTINGS>

use strict;

BEGIN {
use vars qw($HELIOSDIR);
$HELIOSDIR = $ENV{"HELIOSDIR"} or die "HELIOSDIR not set in environment\n";
unshift(@INC, "$HELIOSDIR/etc/perl");
}

use HELIOS::Utils;
use File::Basename;
use IO::Handle;
STDOUT->autoflush(1);
STDERR->autoflush(1);

# input file
my $sInputFile = $ARGV[0] || die "$0: no input file specified\n";

# used applications
my $layoutCmd = "$HELIOSDIR/bin/layout";
my $dtCmd = "$HELIOSDIR/bin/dt";

# environment parameters
my $sOutDir = $ENV{OUTDIR} || "DONE";
my $sErrDir = $ENV{ERRDIR} || "ERROR";
my $sConvNameAdd = $ENV{CONVNAME_ADDITION} || "conv";
my $iScriptDebug = int ($ENV{SCRIPTDEBUG} || "0");

# get directory name, base name with and without suffix from input file name
my $iPos = rindex($sInputFile, "/") + 1;
my $sWorkDir = HELIOSPathToSystemPath(substr($sInputFile, 0, $iPos));
my $sBasename = substr($sInputFile, $iPos);
(my $sShortBasename = $sBasename) =~ s/\.\w*$//;
my $Suffix = substr($sBasename, rindex($sBasename, "."));

my $DeleteOriginal = 1;
my $sTargetSuffix = ".jpg";

print " Start Script: [$$] $0 $sInputFile\n" if ($iScriptDebug > 0);

chdir("$sWorkDir") || die "[$$] $0: cannot change working directory to $sWorkDir\n";

if (! -d $sOutDir) {
!system("$dtCmd", "mkdir", "$sOutDir") || die "[$$] $0: cannot create directory $sWorkDir$sOutDir\n";}
if (! -d $sErrDir) {
!system("$dtCmd", "mkdir", "$sErrDir") || die "[$$] $0: cannot create directory $sWorkDir$sErrDir\n";}

# determine names of moved input file and output files
my $sProcessedFile = "$sShortBasename.$sConvNameAdd$sTargetSuffix";
my $iCounter = 0;

while (-f "$sOutDir/$sProcessedFile" || -f "$sErrDir/$sProcessedFile") {
$iCounter++;
$sProcessedFile = "$sShortBasename.$iCounter.$sConvNameAdd$sTargetSuffix";
}

print STDERR "Status: Running image conversion for file $sInputFile\n";
my $EventOption="-E"; # used for the 'dt' calls below

my @cmd = ($layoutCmd);


push @cmd, ("-T","JPEG");
push @cmd, "-oPrintColor=RGB";
push @cmd, "-oCompressQuality=100";
push @cmd, "-oCompressPrint=JPEG";
push @cmd, "-oScreenResolution=0";
push @cmd, "-oSpotToProcess=FALSE";
push @cmd, "-oIgnoreMasks=FALSE";
push @cmd, "-oIgnoreSpots=FALSE";
push @cmd, "-oOmitProfile=FALSE";
push @cmd, "-oIncludeProfile=TRUE";
push @cmd, "-oThumbnail=TRUE";
$EventOption="";
push @cmd, ("-l","$sBasename");
push @cmd, "$sProcessedFile";


print "[$$] Command line: " . (join " ", @cmd) . "\n" if ($iScriptDebug > 0);

my $iReturnValue = system(@cmd);

my $targetDir = $sErrDir;
if (!$iReturnValue) {
$targetDir = $sOutDir;
print "[$$] Move \"$sProcessedFile\" to \"$targetDir/$sProcessedFile\"\n";
@cmd=("$dtCmd", "mv");
push @cmd, $EventOption if $EventOption ne "";
push @cmd, "$sProcessedFile";
push @cmd, "$targetDir/$sProcessedFile";
system(@cmd) == 0 || die "[$$] $0: cannot move converted file to directory $sWorkDir$targetDir";
}

$sProcessedFile = "$sShortBasename". ($iCounter?".$iCounter":"") . "$Suffix";

if ($DeleteOriginal) {
print "[$$] Remove original file \"$sBasename\" \n";
@cmd=("$dtCmd", "rm");
push @cmd, $EventOption if $EventOption ne "";
push @cmd, "$sBasename";
system(@cmd) == 0 || die "[$$] $0: cannot remove input file.";
} else {
print "[$$] Move \"$sBasename\" to \"$targetDir/$sProcessedFile\"\n";
@cmd=("$dtCmd", "mv");
push @cmd, $EventOption if $EventOption ne "";
push @cmd, "$sBasename";
push @cmd, "$targetDir/$sProcessedFile";
system(@cmd) == 0 || die "[$$] $0: cannot move input file to directory $sWorkDir$targetDir";
}
print "End Script: [$$] $0 $sInputFile\n" if ($iScriptDebug > 0);

exit 0;
Hier Klicken X

Helios Scriptserver

GreatOm
Beiträge gesamt: 378

21. Aug 2017, 13:13
Beitrag # 2 von 6
Beitrag ID: #559154
Bewertung:
(7653 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Aber er läuft nur wenn das zu bearbeitende Verzeichnis in den Hotfolder kopiert wird. Wenn das Verzeichnis nur in den Hotfolder verschoben wird läuft es nicht los.
Also wenn es auf dem gleichen Heliosvolumen in den Hotfolder geschoben wird passiert nicht, wenn es rein kopiert wird - alles bestens...

Da ich leider kein Scriptkenntnisse habe, kann mir jemand vielleicht einen Tipp geben.


Das ist der falsche Weg. Ein Hotfolder funktioniert nur für die entsprechenden Dateitypen. Wenn ein Verzeichnis in den Hotfolder kopiert wird, geht es wenn "Mit Unterordnern" aktiv ist, was normalerweise nicht der Fall ist. Andernfalls könnte es zu weiteren Aktionen führen, wenn die fertigen Dateien vom Skript in den "DONE" Ordner verschoben werden.

Wenn nun ein Verzeichnis auf einem Volume verschoben wird, bekommt man nur einen Event für das Verzeichnis selber. Alle darunter liegenden Objekte werden ignoriert.
Daher sollte kein Verzeichnis, sondern nur dessen Inhalt (also nur die zu konvertierenden Dateien) in den Hotfolder verschoben werden.

Hilft das weiter?

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)


als Antwort auf: [#559087]

Helios Scriptserver

Mabusesteve
Beiträge gesamt: 49

21. Aug 2017, 13:56
Beitrag # 3 von 6
Beitrag ID: #559155
Bewertung:
(7644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Great Om

Danke für deine ausführliche Antwort.

Ich hatte das Script mit der "Mit Unterordnern" Funktion versehen. Die Ergebnisse landen dann im DONE Ordner. Würde mir so passen :-)

Ich verstehen nicht ganz warum das nur beim in den Hotfolder kopieren funktioniert, aber nicht beim "verschieben" funktioniert.

Aber villeicht hast du einen andern Idee zur Lösung des Problem:

Wir müssen ca. 30000 Bilder "umspeichern" von tif in JPG Format.
Das Problem ist, dass die Struktur der Verzeichnisse erhalten bleiben muss!
So müsste ich nur die umgerechneten aus dem DONE Verzeichnis nehmen und wenn alles fertig ist die DONE Verzeichnisse löschen.

Merci


als Antwort auf: [#559154]

Helios Scriptserver

GreatOm
Beiträge gesamt: 378

21. Aug 2017, 14:13
Beitrag # 4 von 6
Beitrag ID: #559156
Bewertung:
(7643 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Aber villeicht hast du einen andern Idee zur Lösung des Problem:


Yep.
In diesem Fall einfach "Mit Unterordnern" beibehalten und das Verzeichnis mit den Bildern in den Hotfolder legen.

Nun von HELIOS Applications -> MacOS -> ImageServer Tools -> Touch.dmg öffnen, "Touch.app" auf den Schreibtisch kopieren und das Diskimage wieder auswerfen.

Nun kannst Du den Order im HotFolder öffnen und alle Dateien (auf keinen Fall die evtl. vorhandenen DONE-Ordner) auf "Touch.app" droppen.

Du musst hier aufpassen, dass nur die zu bearbeitenden Dateien "getoucht" werden, da ansonsten auch alles im DONE-Ordner einen Event bekommt, wodurch auch diese Bilder neu verarbeitet werden und in einem frischen DONE-Ordner landen, der dann evtl. wieder bearbeitet wird usw.
Das ist die Gefahr bei "Mit Unterordnern".

Vielleicht kannst Du das ja erst einmal mit ein paar Dateien im Ordner testen.

Hilft das weiter?

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)


als Antwort auf: [#559155]

Helios Scriptserver

Mabusesteve
Beiträge gesamt: 49

21. Aug 2017, 14:34
Beitrag # 5 von 6
Beitrag ID: #559157
Bewertung:
(7631 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wieder einmal ein Hoch auf diese Foren!

Danke Great Om!!! Genau so soll es sein.

Gabs das auch irgendwo dokumentiert und ich habs einfach nicht gefunden?
Oder liegst an meinen mangelnden tieferen System Kenntnissen?

Kann dieser "Touch" noch mehr ;-) ?

Merci!


als Antwort auf: [#559156]

Helios Scriptserver

GreatOm
Beiträge gesamt: 378

21. Aug 2017, 14:55
Beitrag # 6 von 6
Beitrag ID: #559158
Bewertung:
(7629 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Danke Great Om!!! Genau so soll es sein.


Schön, dass es geholfen hat ;-)

Antwort auf: Gabs das auch irgendwo dokumentiert und ich habs einfach nicht gefunden?


Gute Frage…

Ein grep in HELIOSDIR zeigt, dass das Programm zum ImageServer gehört("Manifest.is"):
Code
[helios] grep Touch Manifest.* 
Manifest.is:public/MacOS/ImageServer Tools/Touch.dmg(5.0.0)
Manifest.is:public/Windows/ImageServer Tools/Touch.exe(5.0.0)


Eine Suche im Handbuch zeigt dann "5.5 Aktualisierung von Layoutbildern mit dem Programm „touch“" (http://www.helios.de/...-d/using.html#a00076)

Gruß,

GreatOm
--
Five exclamation marks, the sure sign of an insane mind. -- (Terry Pratchett, Reaper Man)


als Antwort auf: [#559157]
X

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.

Veranstaltungen
17.09.2019 - 18.09.2019

Tag 1: Freistellen, Tag 2: Composing

Frankfurt/M
Dienstag, 17. Sept. 2019, 09.30 Uhr - Mittwoch, 18. Sept. 2019, 17.30 Uhr

Schulung, Seminar

Digitalfotos gekonnt aufbereiten, Produktfotos effizient freistellen, hochwertige Composings erstellen – für jede Anforderung bietet Photoshop ein Fülle von Werkzeugen und Techniken. Unserer zweitägige Schulung zeigt Ihnen ein Fülle von Arbeitstechniken, Tipps und Tricks. Eine Top-Schulung, die in den vergangenen Jahren fast immer ausgebucht war!

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/weiterbildung-zum-photoshop-composing-experten/

Weiterbildung zum Photoshop-Composing-Experten
Veranstaltungen
18.09.2019

Frankfurt/M
Mittwoch, 18. Sept. 2019, 09.30 Uhr

Schulung, Seminar

Auf den Titelseiten von Zeitschriften oder in Werbeanzeigen finden sich häufig aufwendige Bildretuschen, und oft fragt man sich: „Wie machen die das bloß?“ Unsere neue Photoshop-Schulung High-End-Bildretusche und High-End-Digital-Composing bringt Licht ins Dunkel und erläutert an vielen Praxisbeispielen, wie aus einfachen Digitalbildern packende Montagen entstehen.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/schulungen/schulung-photoshop-composings/

High-End-Bildretusche und Composings