TonUINO-Covermaker lokal verwenden

Jupp. Aufruf mit

./DM_Tonuino.sh MeinBild.jpg

Es wird dann ein StickerBild mit dem Namen DM_MeinBild.jpg erzeugt.

Gruß
Alex

Mit Platzhalter (*.jpg) funktioniert es aber leider nicht, wie ich festgestellt habe. D.h. alle Cover in einem Rutsch zu konvertieren. Oder gibt es noch einen anderen Befehl?

Dann müsstest du eine Schleife schreiben, sowas wie z.B.:

for file in $(ls *.jpg); do ./DM_Tonuino.sh $file; done

Sollte in etwa so funktionieren, wenn ich die Syntax richtig im Kopf habe. Allerdings muss das Skript zusammen mit den Bildern in einem Ordner liegen und es muss vorher mittels „cd“ in den Ordner gewechselt werden.
Dateien mit Leerzeichen im Namen sind bei dieser simplen Schleife aber ein Problem, weil die bash annimmt, dass die einzelnen Elemente mittels Leerzeichen getrennt werden.

1 „Gefällt mir“

Um die Leerzeichenproblematik zu umgehen, sollte man find mit -exec nutzen. Allerdings vermute ich mal, dass das Script selber mit Leerzeichen in den Namen probleme kriegen könnte.
Prinzipiell müsste der Aufruf so gehen (auch ungetestet):

find /PATH/TO/JPG/DIRECTORY -iname "*jpg" -exec  ./DM_Tonuino.sh {} \;
1 „Gefällt mir“

Hier das Script mit integrierter Schleife. Jetzt sollte es auch mit Leerzeichen in Dateinamen gehen.

#!/bin/bash
IFS="
"

for JPG in "$@"
do
file=$JPG
outfile="DM_"$JPG
height_dm=57    # DM Sticker Height
width_dm=82   # DM Sticker Height
height_RFID=54   # RFID Sticker Height
width_RFID=85    # RFID Sticker Height
height_Sticker=51 # So hoch soll der Sticker sein
width_Sticker=82 # So breit soll der Sticker sein
sizex=`identify -format "%[width]" $file`
sizey=`identify -format "%[height]" $file`
ratio=`echo "scale=5; ($height_dm/$width_dm)" | bc`            # Verhältnis DM
# Grundfläche erstellen
# ---------------------
sizeynew=`echo "scale=0; ($sizey*$height_dm/$height_Sticker)" |bc`
sizexnew=`echo "scale=0; ($sizeynew/$ratio)" |bc`
convert -size "$sizexnew""x""$sizeynew" xc:green im_out.jpg    # Grundfläche im DM Format
# Hintergrund Gaussian Blur
# -------------------------
sizex10=`echo "$sizex/10" |bc`
sizey10=`echo "$sizey/10" |bc`
convert -adaptive-resize "$sizex10""x""$sizey10" $file im_background.jpg
convert -gaussian-blur 0x4 im_background.jpg im_background.jpg
convert -adaptive-resize "$sizexnew""x""$sizey"\! im_background.jpg im_background.jpg
convert im_out.jpg im_background.jpg -compose src-over -gravity center -composite im_out2.jpg
convert im_out2.jpg $file -compose src-atop -gravity center -composite $outfile
rm im_out2.jpg im_out.jpg im_background.jpg 
done

Aufruf mit:
./DM_Tonuino.sh *.jpg

3 „Gefällt mir“

Hi,
ich hätte Interesse daran, dein Tool zu testen.

http://timm-sander.net/wp-content/uploads/Cover.zip
hier der Link zum Download.

Einfach die exe im ordner starten. bei Angst vor Viren vorher
https://www.virustotal.com/gui/home/upload
fragen :wink:

Wenn du noch fragen haben solltest melde dich einfach

3 „Gefällt mir“

Doofe Frage, wie Speicher ich denn das Bild?
Und kann ich das Cover auch um 90 Grad drehen?

Habe es mal getestet und wenn man auf „Erstellen“ drückt wird die Datei in den selben Ordner vom Ursprungbild gespeichert.
Und wenn man das Bild rotiert haben möchte muss man das denke ich einfach mit der Quelldatei schon machen.

1 „Gefällt mir“

Sorry für die späte Antwort, Vorweihnachtstress.
Wie @chillomatic geschrieben hat passt das.
Weitere Funktionen sind in Arbeit, Wünsche könnt ihr gern äußern.

1 „Gefällt mir“

Danke.
Einen Wunsch hätte ich. Wenn das Cover nicht quadratisch ist, dass trotzdem ein vernünftiges Bild raus kommt. Habe nämlich das ein oder andere Buchcover…
Aber eilt nicht, bin momentan durch mit den Covern. Aber die nächsten Geburtstage kommen ja auch wieder :thinking:

Das sollte mit der Bash Version von @LeffSpike oder meiner Powershell Übersetzung normalerweise kein Problem sein. Falls doch, kann man einfach die Eingabeparameter für Breite und Höhe tauschen (oder eine if-Anweisung einbauen, die problematische Bilder automatisch erkennt und die Parameter tauscht).

@Dave: das war eigentlich auf @TSander bezogen. Aber ich habe gerade festgestellt, dass ich das Zitieren vergessen hatte :man_facepalming: .
Aber ich glaube dass meine Wünsche auch schon bei dem Windowstool funktionieren. Hatte einfach nur Rechnerprobleme, da das Tool nicht gearbeitet hatte.
@TSander: eine Anzeige, dass das Tool am Bild erzeugen ist, wäre aber super.

Könnte ich machen, aber das geht zu schnell.
Öffne mal nebenbei den Explorer mit dem Ordner in dem die Originaldatei liegt ,klick auf erstellen und achte darauf wie lange es dauert bis die neue Datei da ist.
Dauert bei mir( aus der IDE) ca. 1Sek.
Ich würde vielleicht eine Meldung anzeigen dass das Bild erzeugt wurde mit der Möglichkeit dies gleich im Explorer zu zeigen.

Oh je, dann ist da was im Argen bei meinem Rechner… war definitiv länger…

Das wäre top :+1:.

http://www.timm-sander.net/tonuino/setup.exe

Hier die neue Version.

Hab die Anzeige das erstellt wird umgesetzt.
Es ist nun auch möglich eine Farbe als Hintergrund zu wählen
Die Stärke des Rauschen im Hintergrund ist einstellbar!

3 „Gefällt mir“

Danke für das Tool, kann ich damit auch das Tonuino-Logo mit einbauen? Kann ich auch das Format, dh. die Maße der Cover einstellen? In der Config der ersten Version habe ich nichts gefunden. Die neue Version gibt leider folgende Fehlermeldung aus:
(Die Netframework-Datei habe ich vorher per Hand runtergeladen und installiert, weil es über den Installer auch nicht klappte (hing evtl mit Tinywall zusammen (Software-Firewall)).

PLATFORM VERSION INFO
	Windows 			: 6.1.7601.65536 (Win32NT)
	Common Language Runtime 	: 4.0.30319.42000
	System.Deployment.dll 		: 4.8.3761.0 built by: NET48REL1
	clr.dll 			: 4.8.3928.0 built by: NET48REL1
	dfdll.dll 			: 4.8.3761.0 built by: NET48REL1
	dfshim.dll 			: 4.0.41209.0 (Main.041209-0000)

SOURCES
	Deployment url			: http://timm-sander.net/tonuino/TonCov.application

ERROR SUMMARY
	Below is a summary of the errors, details of these errors are listed later in the log.
	* Activation of http://timm-sander.net/tonuino/TonCov.application resulted in exception. Following failure messages were detected:
		+ Downloading http://timm-sander.net/tonuino/TonCov.application did not succeed.
		+ Unable to connect to the remote server
		+ An attempt was made to access a socket in a way forbidden by its access permissions 77.111.240.51:80

COMPONENT STORE TRANSACTION FAILURE SUMMARY
	No transaction error was detected.

WARNINGS
	There were no warnings during this operation.

OPERATION PROGRESS STATUS
	* [16/12/2019 20:00:50] : Activation of http://timm-sander.net/tonuino/TonCov.application has started.

ERROR DETAILS
	Following errors were detected during this operation.
	* [16/12/2019 20:00:50] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
		- Downloading http://timm-sander.net/tonuino/TonCov.application did not succeed.
		- Source: System.Deployment
		- Stack trace:
			at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
			at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
			at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState, X509Certificate2 clientCertificate)
			at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
			at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
			at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
			at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri)
			at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
--- End of stack trace from previous location where exception was thrown ---
			at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
			at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
			at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
		--- Inner Exception ---
		System.Net.WebException
		- Unable to connect to the remote server
		- Source: System
		- Stack trace:
			at System.Net.HttpWebRequest.GetResponse()
			at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
		--- Inner Exception ---
		System.Net.Sockets.SocketException
		- An attempt was made to access a socket in a way forbidden by its access permissions 77.111.240.51:80
		- Source: System
		- Stack trace:
			at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
			at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)

COMPONENT STORE TRANSACTION DETAILS
	No transaction information is available.

Das Programm versucht anscheinend irgendwas von einem Server aus dem Internet zu laden, was auf Grund fehlender Rechte (oder evtl einer Regel in der Firewall?) fehlschlägt.

Richtig, das ist ein Webdeployed Project.
Die Setup.exe lädt die .application und die Installationsdateien nach, deine Firewall scheint das nicht zu mögen.
Ich habe es gerade noch einmal an nem anderen Rechner probiert am Projekt liegts nicht.

zu deinen anderen Fragen in beiden Fällen ist die Antwort „Noch nicht“

Stimmt, ja Irgendwie war die exe des Net-frameworks von der tiny-wall geblockt.