TonUINO-Covermaker lokal verwenden

Moin,
siehe da nun geht es. Alles so wie es soll. Wo der Fehler jetzt lag habe ich nicht rausgefunden. Danke.

Ich fass es dann nochmal zusammen für alle die es lokal nutzen wollen.

  1. Imagemagick installieren, Hacken bei Tools setzten. https://imagemagick.org/script/download.php

  2. Einen Ordner für die Covers anlegen und Cover hinein kopieren.

  3. Powershellbefehle (Post 41) kopieren und in eine TXT Datei einfügen (spart das Suchen im Forum für spätere Anwendungen)

### Konfiguration ###
$height_param=508
$width_param=838
$blur_param="0x4"
###

$background="covermakerBackground.jpg"
$files=gci -file -name *.jp*g
foreach ($file in $files)
{
$targetfile="TonUINO_Cover_$file"
$sizex=identify -format "%[width]" "$file"
$sizex=$sizex -as [int]
$sizey=identify -format "%[height]" "$file"
$sizey=$sizey -as [int]

if ( $width_param*$sizey -gt $sizex*$height_param )
{
$outSizeX=(2*$width_param*$sizey + $height_param) / (2*$height_param) -as [int]
$outSizeY=$sizey
}
else {
$outSizeX=$sizex
$outSizeY=(2*$height_param*$sizex + $width_param) / (2*$width_param) -as [int]
}

$resize1="$($sizex/10)" + "x" + "$($sizey/10)" + "!"
$resize2="$outSizeX" + "x" + "$outSizeY" + "!"
convert -adaptive-resize "$resize1" -gaussian-blur "$blur_param" -adaptive-resize "$resize2" -virtual-pixel mirror "$file" "$background"

convert "$background" "$file" -gravity center -composite -compose src-atop -flatten "$targetfile" 

remove-item $background
}
  1. Über das Windows Startmenu Powershell suchen und ausführen.

  2. im Powershellfenster in den Coverordner navigieren. (In meinem Fall cd D:\Cover) Enter drücken

  3. rechtsklick ins Powershell Fenster fügt den Code ein (Sollte vorher aus der TXT Datei kopiert worden sein)

  4. Enter und einen Kaffee trinken.

Danke nochmal an das Forum Team für diese tolle Arbeit.

2 Like

Das freut mich zu hören. Danke auch nochmal an @LeffSpike, der meine quick&dirty Lösung weiter entwickelt hat (sein Skript war die Grundlage für die Powershell Version oben). Hier nochmal der Post aus dem anderen Thread mit der bash Version:

1 Like

Bilder wo die Breite geringer ist als die Höhe (z.B. Kassetten Cover) sind problematisch.


In so einem Fall sollte man das Bild entweder um 90° drehen oder einfach die Eingabeparameter tauschen. Mir würde auf die Schnelle nur ein Hack einfallen: Bildabmessungen vergleichen und wenn Breite < Höhe einfach die Parameter im Skript umdrehen.

Wer sich Rfid Karten erstellen möchte, sollte mal einen Blick auf folgende Seite wagen.

RFID Design

Damit lässt sich einfach und schnell belibige Bilder Texte usw einfügen und direkt drucken. Danach muss man nur noch das fertige Bild ausschneiden, bzw. die Vorlagen bei Amazon bestellen und raus trennen.

Gleiches gibt es für die hier oft schon verwendeten Etiketten von HERMA ebenfalls:

https://www.herma.de/vorlagen-software/etiketten-assistent-online/

Die passenden Etiketten:

ich habe mir zu diesem Zweck eine Windows-Anwendung zusammen gekritzelt.

Falls das jemand Testen will, einfach melden.

Hier Beispiele(Original und Output)
5238501c99bfb8e41236f6176a126190478e0b14_2_329x500 Out_5238501c99bfb8e41236f6176a126190478e0b14_2_329x500

Out_425615_urlaub_in_der_hexenpension_115_300dpi-1

Bildparameter werden automatisch angepasst.
Es ist auch möglich Text einbinden zu lassen.
Out_425615_urlaub_in_der_hexenpension_115_300dpi-1

Hi
Hier tut sich ja mal richtig was . Ihr seit alle so fit ,und ich bekomme das hier


nicht einmal hin . Ich habe alle diese Tools nicht gekannt und gerade mal installiert und es funktioniert . Jetzt geht es ans lernen um mein Problem zu lösen

Danke an alle die Fleißigen hier

Willmar

1 Like

Hallo zusammen! Vielen herzlichen Dank zunächst für die Mühen.
Leider bräuchte ich ein klein wenig Hilfe: Meine Powershell gibt folgenden Fehler aus:

Get-ChildItem : Es wurde kein Parameter gefunden, der dem Parameternamen „file“ entspricht.
Bei Zeile:1 Zeichen:17

  • $files=gci -file <<<< -name .jpg
    • CategoryInfo : InvalidArgument: (:slight_smile: [Get-ChildItem], ParameterBindingException
    • FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

Da müsstest du wohl die Powershell wenigstens auf Version 3 aktualisieren. Vermutlich gibt es den Parameter in deiner Powershell Version nicht. Prüfen ob deine Version den Parameter kennt könntest du z.B. mit:
get-help gci
Die Powershell Version siehst du mit:
$psversiontable

Der Schalter macht aber nix weiter als dafür zu sorgen, dass Ordner nicht mit verarbeitet werden. Wenn du keine Unterordner hast, kann das denke ich auch bedenkenlos weggelassen werden. Eventuell geht es dann etwas weiter, aber ich weiß nicht, wo sich deine Version möglicherweise noch dran stören könnte (Wildcards im „-name“ Parameter, bestimmte Berechnungen, …).

Perfekt, vielen Dank @Dave! Die neue Version hat die Lösung gebracht. Wildcards etc waren nicht vorhanden, da hatte ich mich bereits versichert.

Einen weißen Rand z.B oben im Bild hinzuzufügen ist recht einfach mit dem „splice“ Parameter möglich:
convert my.jpg -background white -splice 0x123 my_new.jpg (im Zweifel steht das auch in der ImageMagick Doku).

Allerdings wird dabei das Seitenverhältnis verändert und ein vernünftiger Ausdruck ist dann nicht mehr ohne Weiteres möglich. Die Schwierigkeit liegt darin die Berechnungen umzustellen und (bei Verwendung des vorhandenen Codes) die Logik so anzupassen, dass alles andere weiterhin wie bisher funktioniert. Wenn man unnötige Skalierung vermeiden möchte, müsste man die Länge des Hintergrundes um einen relativen Wert vergrößern (je nach Bild- und Aufklebergröße), damit man hinterher an der gewünschten Stelle an der anderen Seite einen weißen Streifen in der korrekten Größe hinzufügen kann. Bei sowas tue ich mich immer schwer, aber mit etwas trial&error kommt man oft sehr weit :wink: Außerdem machts ja mitunter auch Spaß und man lernt was dabei! :slight_smile:

Gern. Mit Wildcards meinte ich aber die * in einem der Powershell Kommandos. Ich weiß nicht, ob das in der Form in älteren Powershell Versionen gültig ist :slight_smile:

Hallo zusammen,
Super was sich hier tut!
@Dave : Das Feature mit dem automatisch drehen finde ich keinen Hack - das ist ein Feature Request den meine Frau auch schon geäußert hat :slight_smile: Sobald ich mal wieder Zeit habe, werde ich das einbauen. Ebenso ein kleines Batch, das ein ganzes Verzeichnis abarbeitet (ich mache daraus lieber 2 getrennte Batch-Files, dann ist die Fehlersuche einfacher). Und als drittes einen Schwellwert für AspectioIn/AspectratioOut, ab dem dann gar nicht gefüllt, sondern nur verzerrt wird.
Danke auch für die „Werbung“ für das Skript - freut mich, dass es gut angekommen ist.

Die genannten Tools schaue ich mir eventuell auch mal an. Aber ich wollte von Anfang an lieber ein Offline Tool haben…

Jetzt muss ich erst mal ins Kinderzimmer schauen, da wird es grade so leise…

Hallo
Danke für die Info . Werde mich da mal einarbeiten , war heute mein erster Kontakt mit dem Programm .

„Hack“ meinte ich auch nur, weil die Parameternamen dann nicht mehr zu den Werten passen (height und width vertauscht) und das verwirrend sein kann. Ich hatte so schon Mühe bei dem Wildwuchs an Namen den ich da aufgeschrieben hatte :wink: Die Parameter tauschen funktioniert aber ansonsten so weit ich gesehen habe. Das Problem mit der lieben Zeit kennen wohl die meisten TonUINO-Bauer, wenn man bedenkt wer die Zielgruppe ist :grin:
Bezüglich der Fehlersuche hast du Recht. Ich habe auch schon gemerkt, dass lustige Sachen passieren können, wenn man wie ich einfach eine Schleife um den Block legt, der die Bilder umwandelt und dann an den Parametern rumspielt :wink: Schöner ist sicher das Umwandeln in eine Funktion auszulagern und die Schleife um Ordner abzuarbeiten außen herum zu legen.

Hauptsache ist ja, dass möglichst viele Leute mitmachen und zusammen an diesem tollen Projekt arbeiten. Deshalb hatte ich einfach erstmal etwas gebaut, damit auch Windows User deine Weiterentwicklung ausprobieren können (bash gibt es so weit ich weiß nicht für Windows 7 und 8). Ich selber nutze Windows 10 und Ubuntu, also bin ich da eher nicht festgelegt. Das Schöne ist aber, dass mittlerweile sehr vieles unabhängig vom verwendeten OS läuft (bash gibts für Windows 10, die Powershell auch für MacOS und Linux). Tatsächlich habe ich die Powershell Befehle unter Ubuntu geschrieben und auch da getestet. In einem zweiten Fenster lief dann dein bash Skript zum einfachen Vergleichen der Dateien :slightly_smiling_face:

@compactflash

Hi,

ich bin auf das gleiche Problem gestoßen. Hier meine Linux-bash Version (auf Basis des ursprünglichen php Scripts) für die DM Sticker, mit welcher ich einen kleinen grünen Rand oben und unten hinzufüge den man dann abschneiden kann. Die Höhenauflösung des Original Bildes wird beibehalten und die Breite entsprechend dem Seitenverhältnis für DM angepasst. Hab bisher 8 Sticker bei DM Drucken lassen. Soweit hat das ganz gut gepasst.

#!/bin/bash
file=$1
outfile="DM_"$1
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
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
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

Hier gibts ja jetzt einige Möglichkeiten Cover zu erstellen. Es wäre sicher eine gute Idee das Ganze zu vereinheitlichen und z.B. in Python umzusetzen. Das OS-unabhängige Skript könnte man dann ins Github hochladen, so dass jeder direkt Zugang dazu hat (analog zu den bereits vorhandenen „Text-To-Speech“ Skripten).

Mit Hilfe der hier geposteten Lösungen ließe sich das bestimmt entsprechend übersetzen. Ein Problem könnte allerdings sein, dass das „subprocess“ Modul von Python unter Windows anders funktioniert als unter Linux. Hier müsste man sich was überlegen. Am besten wäre aber denke ich eine Lösung die nur Module aus der Python Standardbibliothek benutzt, um dem Benutzer unnötige Probleme bei der Installation von pip o.ä. zu ersparen. Dann müsste lediglich noch das automatische Drehen bei bestimmten „Hochformat“-Bildern eingebaut und das Hinzufügen eines Randes (z.B. für die DM Sticker) als zusätzliches Feature implementiert werden. Andere Wünsche / Probleme habe ich hier bisher nicht gelesen.

Toll wäre natürlich auch, wenn jemand das in php umsetzen könnte, so dass die hier entwickelten Lösungsansätze auch ihren Weg in den online Covermaker finden.