Seite 1 von 2 12 Letzte
  1. #1
    Avatar von sam3nx
    Registriert seit
    21.01.2022
    Beiträge
    11
    Thanked 2 Times in 2 Posts

    Standard Text aus PSD Datei in eigener Anwendung extrahieren.

    Guten Tag,

    mein Kopf glüht und ich bin noch immer nicht weiter gekommen.
    Um mein Projekt weiterführen zu können, muss ich diese Baustelle zwecks Automatisierung meistern.

    An sich ist das nichts weltbewegendes was ich vor habe, aber all zu schwer kannns ja wohl auch wieder nicht sein. (Außer ohne Erfahrung )

    Was ich vor habe ist:
    Ich möchte eine Anwendung erstellen, in der ich eine PSD Datei implementiert habe (dass sie nicht von anderen ersichtlich ist) und möchte zugleich die 5 Textebenen aus der PSD Datei mit Textboxen
    meiner Anwendung koppelt, sodass der eingegebene Text ins EIngabefeld übernommen wird und auch an 1:1 die selbe position soll der eingegebene Text ausgegeben werden.

    Kuss für jegliche Art Hilfe
    P.S -Shane

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Hi,

    zuerst einmal: Um was für eine Art von Anwendung geht es? Web oder klassische Desktop-Anwendung?

    So wie du es beschreibst, erinnert mich das an Früher, als man Designs zuerst in Grafikbearbeitungssoftware entworfen hat, um sie anschließend in HTML/CSS zu exportieren. Gerne mit Hintergrundgrafiken, die man wiederholt, um Muster umzusetzen. Das ist zunehmend unüblicher geworden, weil es aufgrund der extrem unterschiedlichen Gerätegrößen (Handy bis großem Bildschirm vom PC/TV) schwierig geworden ist, abzubilden. Außerdem hat sich CSS weiterentwickelt und kann selbst komplexe Effekte wie z.B. Schatten mit Farbverläufen abbilden. Das war technisch damals nicht (plattformübergreifend) möglich, weswegen man mit Grafiken gearbeitet hat.

    Photoshop hat anscheinend mittlerweile eine Exportfunktion für CSS eingebaut, sieht dem Beitrag nach auf den ersten Blick ganz brauchbar aus. Für eine Web-Anwendung könntest du diese Wege nutzen. Im Falle einer Desktop-Anwendung wird es komplex, hier gibt es ja keinen universellen Standard, wie im Web. Da müsstest du schauen, was dein eingesetztes Framework unterstützt und wie das dort konkret umgesetzt wird. Möglicherweise stößt du dabei an Grenzen, wenn komplexere Elemente im Design vorhanden sind - nicht überall hat man alle Freiheiten. Bei OSS hättest du theoretisch die Möglichkeit, fehlendes selbst hinzuzufügen - natürlich mit entsprechendem Aufwand, daher nur unter Umständen sinnvoll.


  3. #3
    Avatar von sam3nx
    Registriert seit
    21.01.2022
    Beiträge
    11
    Thanked 2 Times in 2 Posts

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Ich möchte dasselbe Prinzip nachbauen wie auf folgendem Screenshot zu sehen ist.

    Natürlich will ich das aber nicht mit Ausweis Dokumenten machen, aber ich habe Photoshop PSD Dateien die auf das selben Prinzip basieren. Man sich in

    Da ich keine Erfahrung im coden habe, dachte ich mir hätte ich es in Visual Basic (bzw habe ich versucht) NET zu erstellen, da visuell und Sprache nicht so komplex ist find ich Aber entweder komm ich mit den Bibliotheken nicht zurecht oder die spacken, wenn sie noch aktuell sind.
    HTML/PHP ebenso noch keine Erfahrung, wobei ich weiß, dass es anhand einem PHP Script genauso gut möglich wäre, Text aus Textbox basierend den Einstellungen der PSD zu extrahieren und sich abzuspeichern oder als PNG nur ausgeben zu lassen.
    Hab leider kein anderen Generator gefunden der mein Anliegen beschreiben würde
    P.S -Shane

  4. #4
    Avatar von sam3nx
    Registriert seit
    21.01.2022
    Beiträge
    11
    Thanked 2 Times in 2 Posts

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Beitrag wurde nicht gepostet? geprüft? Egal, ich poste nochmal.

    NEIN, ich benutze natürlich keine Ausweisdaten oder ähnliches. Ich habe PSD Dateien, die ich ungefähr dem selben Prinzip wie auf dem Screen zu erkennen ist anfertigen möchte.
    (Keinen anderen Generator gefunden / eingefallen.) Jedenfalls möchte ich mir auf dieselbe Art und weise eine Anwendung / Form erstellen um meine PSD Datei zu Verfügung zu stellen und sich seine bzw meine Signatur auf seinen Wunschnamen anfertigen zu lassen.

    https://prnt.sc/qpHQaEGSBrJu

    Ich weiß weder, ob es mir einfacher in VB.NET fallen würde oder es dort einfacher ist als wie in Python, oder PHP. oder lowcode form builder? Ich benötige Rat vom Meister.
    P.S -Shane

  5. #5
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    So wie ich das verstanden habe, möchtest du ein dynamisches Bild generieren. Nach dem gleichen Prinzip funktionieren die dynamischen Signaturen: Es gibt ein Vorlagen-Bild mit dem Kasten usw. Das PHP-Skript dahinter ließt die Daten des jeweiligen Nutzers (Beiträge, Anzahl Danke etc) aus der Datenbank aus, legt sie an der jeweiligen Position über die Vorlage und gibt das dadurch neu entstandene Bild aus. Nach dem gleichen Schema kannst du dein Bild exportieren und das drauf schreiben, was dynamisch erstellt werden soll. Limitiert ist das halt natürlich auf die Größe der Vorlagen-Grafik, heißt der dynamische Text darf z.B. nicht zu lang sein. Und das ausgegeben Bild lässt sich nicht ohne weiteres in verschiedenen Größen erzeugen. Je nach Anwendungszweck ist das aber auch kein Problem. Gerade bei der Signatur ist das ja alles recht gut kalkulierbar, da z.B. keiner mehr als 3 Stellen für Beitragszähler, Danke usw. benötigt. Und selbst wenn hat das Bild genug Platz für eine vierte Stelle.

    Mit Visual Basic würde ich nichts mehr anfangen. Das Syntax war schon immer Furchtbar und hat unnötige Tipparbeit verursacht (Dim s as string statt string s beispielsweise). Dazu hat MS selbst die Sprache vor ein paar Jahren erst aufs Abstellgleis gestellt (wird noch unterstützt, aber nicht mehr erweitert). Wenn schon .NET, dann C#. Aber generell ist der Ansatz zu schauen was nun etwas einfacher ist oder nicht, wenig Sinnvoll. Wenn du nicht gerade hardwarenahe Sprachen wie C, C++ oder Assembler mit einbeziehst, nehmen die sich von der Schwierigkeit her innerhalb eines Bereiches (z.B. Skriptsprachen) nicht all zu viel. Ich würde eher schauen, was du konkret umsetzen möchtest. Soll es eine Desktop-Anwendung werden, bringt dir PHP nichts, um mal ein Beispiel zu nennen. Oder wenn das auf einem Webspace mit PHP laufen soll, kommst du mit .NET nicht weit. Python kann Desktop und Web gut abdecken, aber auch da musst du dir ja erst mal Überlegen, wo deine Anwendung laufen soll und was dafür die sinnvollste Variante ist. Tendenziell eher Web, das kommt aber auf den Einzelfall drauf an.

    In nahezu allen Sprachen wirst du Bibliotheken haben, sodass so was grundlegendes in höchstens wenigen hundert Zeilen Code realisierbar sein dürfte (je nachdem, was noch drum herum kommt). Für die U-Hacks Signatur sieht das PHP-Skript beispielsweise wie folgt aus:
    PHP-Code:
    <?php
        
    include('global.php');
        
    define('THIS_SCRIPT''dynsig');
        
    $sigPath "dynsig";
        
    $font $sigPath '/LisboaSansSCLight.otf';
        
        
    $user $db->escape_string(urldecode($_GET['u']));
        if(
    strpos($user'/') !== false)
            
    $user str_replace('/'''$user);

        
    $sql $db->query_read("SELECT username,opentag,posts,xperience_level,itrader_total,post_thanks_user_amount,post_thanks_thanked_times,description,userid,avatarrevision,lastactivity 
            FROM user
            INNER JOIN usergroup ON (user.usergroupid = usergroup.usergroupid)
            WHERE user.username='" 
    $user "'
        "
    );
        
    $userInfo $db->fetch_array($sql);

        
    preg_match("#color:([^;]+)(;|\")#"$userInfo['opentag'], $m);
        
    $userColor hex2rgb($m[1]);

        
    $user_exists true;
        if(!
    $userColor) {
            if(!
    $userInfo) {
                
    $user_exists false;
                
    $userColor = array('r' => 255'g' => 0'b' => 0);
                
    $userInfo['username'] = 'Benutzer existiert nicht!';
                
    $userInfo['posts'] = $userInfo['xperience_level'] = $userInfo['itrader_total'] = $userInfo['post_thanks_user_amount'] = $userInfo['post_thanks_thanked_times'] = 0;
                
    $userInfo['description'] = 'N/A';
            }else { 
                
    $userColor = array('r' => 255'g' => 255'b' => 255);
            }
        }
        
        
    header('Content-Type: image/gif'); 
        
    $img imagecreatefrompng($sigPath "/images/dyn1-bg2.png");
        
    $default_f_color imagecolorallocate($img255255255);
        
    $user_color imagecolorallocate($img$userColor['r'], $userColor['g'], $userColor['b']);
        
    imagettftext($img1507053$user_color$font$userInfo['username']); //55

        
    imagettftext($img1003580$default_f_color$font"Posts: ");
        
    imagettftext($img1009080$default_f_color$font$userInfo['posts']);
        
        
    imagettftext($img1003595$default_f_color$font"Level: ");    
        
    imagettftext($img1009095$default_f_color$font$userInfo['xperience_level']);
        
        
    imagettftext($img10035110$default_f_color$font"iTrader: ");
        
        
    $itrader_color $default_f_color;
        if(
    $userInfo['itrader_total'] < 0)
            
    $itrader_color imagecolorallocate($img25500);
        else if(
    $userInfo['itrader_total'] > 0)
            
    $itrader_color imagecolorallocate($img02550);
        
    imagettftext($img10090110$itrader_color$font$userInfo['itrader_total']);
        
        
    imagettftext($img10015080$default_f_color$font"Danke gegeben: ");
        
    imagettftext($img10025080$default_f_color$font$userInfo['post_thanks_user_amount']);
        
        
    imagettftext($img10015095$default_f_color$font"Danke erhalten: ");
        
    imagettftext($img10025095$default_f_color$font$userInfo['post_thanks_thanked_times']);
        
        
    imagettftext($img100150111$default_f_color$font"Rang: ");
        
    imagettftext($img100185111$user_color$font$userInfo['description']);
        
        if(
    $user_exists) {
            
    $thumb_size 25;
            
            
    $thumbFile "avatar" $userInfo['userid'] . "_" $userInfo['avatarrevision'] . ".gif";
            
    $thumbSize;
            if(
    $userInfo['avatarrevision'] > 0) {
                if(!
    file_exists($sigPath "/thumbs/" $thumbFile)) {
                    
    $thumb generate_thumbnail("customavatars/" $thumbFile$thumb_size);
                    
    imagejpeg($thumb$sigPath "/thumbs/" $thumbFile95);
                }else {
                    
    $thumb load_image($sigPath "/thumbs/" $thumbFile);
                }
                
    $thumbSize getimagesize($sigPath "/thumbs/" $thumbFile);
            }else {
                
    $thumb load_image("images/misc/unknown_small.gif");
                
    $thumbSize getimagesize("images/misc/unknown_small.gif");
            }
            
            
    ImageCopy $img$thumb263400$thumbSize[0], $thumbSize[1]);
            
            
    $sql $db->query_read("SELECT COUNT(*) AS count FROM session WHERE userid='" $userInfo['userid'] . "'");
            
    $session $db->fetch_array($sql);
            
            
    $isOnline $session['count'] > 0;
            
    $onlineImage = ($isOnline "online.png" "offline.png");
            
    $onlinestatus imagecreatefrompng($sigPath "/images/" $onlineImage);
            
    ImageCopy $img$onlinestatus5540001616);
        }

        
    imagegif($img);
        
    imagedestroy($img);
        
        function 
    hex2rgb($color) {
            if (
    $color[0] == '#')
                
    $color substr($color1);

            if (
    strlen($color) == 6)
                list(
    $r$g$b) = array($color[0].$color[1],
                                         
    $color[2].$color[3],
                                         
    $color[4].$color[5]);
            elseif (
    strlen($color) == 3)
                list(
    $r$g$b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
            else
                return 
    false;

            
    $r hexdec($r); $g hexdec($g); $b hexdec($b);

            return array(
    'r' => intval($r), 'g' => intval($g), 'b' => intval($b));
        }
        
        function 
    generate_thumbnail($path$maxSize) {
            
    $info getimagesize($path);
            
    $bild['breite'] = $info[0];
            
    $bild['hoehe'] = $info[1];
            
            if (
    $bild['breite']>$bild['hoehe']) {
                
    $neuebreite $maxSize;
                
    $neuehoehe round($bild['hoehe']/$bild['breite']*$maxSize);
            }else {
                
    $neuehoehe $maxSize;
                
    $neuebreite round($bild['breite']/$bild['hoehe']*$maxSize);
            }
            
    $quelle load_image($path);
            
    $ziel imagecreatetruecolor($neuebreite,$neuehoehe);
            
    imagecopyresampled($ziel,$quelle,0,0,0,0,$neuebreite,$neuehoehe,$bild['breite'],$bild['hoehe']);
            return 
    $ziel;
        }
        
        function 
    load_image($path) {
            
    $exif_type exif_imagetype($path);
            
            if(
    $exif_type == 2)
                return 
    imagecreatefromjpeg($path);
            else if(
    $exif_type == 1)
                return 
    imagecreatefromgif($path);
            else 
                return 
    imagecreatefrompng($path);
        }
        
        function 
    int2rgba($int) {
            
    $a = ($int >> 24) & 0xFF;
            
    $r = ($int >> 16) & 0xFF;
            
    $g = ($int >> 8) & 0xFF;
            
    $b $int 0xFF;
            return array(
    'r'=>$r'g'=>$g'b'=>$b'a'=>$a);
        }
    Das ist natürlich recht spezifisch für die Forensoftware und unseren Anwendungsfall, beispielsweise haben wir da ja nicht nur Text drauf, sondern auch eine verkleinerte Version des Profilbildes. Einiges davon wirst du sicher nicht brauchen, wenn es nur um reinen Text geht. Dazu ist der Code einige Jahre alt, so manches lässt sich heute sicher besser/effizienter lösen. Der Kern sind die imagettftext Aufrufe. Die Funktion bekommt Angaben zur Schrift, Position, Winkel und so weiter, um den Text an der gewünschten Stelle aufs Bild zu schreiben.


  6. The Following User Says Thank You to DMW007 For This Useful Post:

    sam3nx (04.06.2023)

  7. #6
    Avatar von sam3nx
    Registriert seit
    21.01.2022
    Beiträge
    11
    Thanked 2 Times in 2 Posts

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    VB.NET war nur meine Wahl, weil ich ungefähr noch wusste wie der Code (Syntax?) aufgebaut war um stumpf zu erreichen was ich wollte. -Nix wusste ich mehr, die Tool Elemente konnte ich mir links merken das wars haha.

    Mir ist das grob mehr oder weniger alles klar, Nativ, Webbasiert, Skript etc.

    Angenommen ich habe eine Vorlage für eine Rechnung, überall da wo "beliebiger Text" hin soll lass ich leer sodass nur der Rohling vorliegt, und extrahierter Text wird an der richtigen CSS (?) Position eingefügt.
    könnt ich nativ als consolenanwendung machen mit python nur komm ich in der Praxis nicht so weit.

    Also an sich sind mir mehrere Möglichkeiten bekannt wie ich mein vorhaben umsetzen (könnte) sowohl Nativ als auch Webbasiert, nu möchte ich wenig in nem Kommentar genauer ins Detail gehen wollen.

    Mir ist erstmal egal ob es Nativ oder Webbasiert ist, da ich, wenn ich eine Seite durch habe sowieso eine Lösung dafür hätte ob Web oder Nativ aber ich muss erstmal so weit kommen, mittels einer Textbox oder einem Eingabefeld den Text einer entsprechenden PSD Datei zu übernehmen / zu ändern und sich als PNG / PDF etc ausgeben / abspeichern zu lassne. Wenn ich soweit komme, praktisch genau die Textebene aus PSD mit meiner Anwendung / HTML Eingabefeld oder Console eingabe mit Textebene zu verknüpfen dann wäre mir glaub ich schon reichlich weitergeholfen.
    P.S -Shane

  8. #7
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Fang halt mal mit einem einfachen Beispiel an, das die Grundfunktion beherrscht: Erstelle eine Grafik mit einem Textfeld und dann versuche, an die Position programmatisch etwas auf das Bild zu schreiben sowie das Erzeugte auszugeben. Alles andere würde ich weglassen, das kommt dann später. Also keine Formulare, Textboxen oder so was als Eingabefelder für den dynamschen Text, sondern ein Skript mit hartkodierten Variablen erstellen, das erst mal nur Text an eine Stelle schreibt. Oben hast du ein fertiges Skript, da musst du nur die U-Labs spezifischen Sachen raus nehmen und in der Doku die Parameter für imagettftext nachschauen, um sie anhand deines Bildes anzupassen. Entweder messen oder probieren, Letzteres dürfte v.a. am Anfang einfacher sein. So lange die Schriftfarbe nicht gerade dem Bild sehr ähnlich ist, sieht man ja, wo der Text gelandet ist. Dann noch eine Schrift aus dem Netz laden und fertig ist der erste Teil.

    Wenn du das zum Laufen gebracht hast, kannst du es Schritt für Schritt entsprechend deines Wunsches erweitern und schlussendlich auch eine Oberfläche dafür entwickeln. So hast du überschaubare Teilprobleme, die du nacheinander lösen kannst, statt dich in was größerem zu verzetteln.


  9. #8
    Avatar von sam3nx
    Registriert seit
    21.01.2022
    Beiträge
    11
    Thanked 2 Times in 2 Posts

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Oh, Verzeihung die späte Antwort, dachte hier kommt nichts mehr .

    Da ich keinerlei Erfahrung hab, dacht ich mir GPT zur Seite zu nehmen, aber hat mich jetzt durch sämtliche Hochsprachen gejagt weil nichts funktionieren will xd.

    Ich hab zb nh PHP Script erstellen können, um den Text einfach simpel zu printen, nur hab ich keine Ahnung wie ich an GENAU DIE CSS Position komme wo der Text in der PSD Datei vorhanden wäre.

    Beispiel:

    Spoiler:
    <?php
    error_reporting(0);

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['generate'])) {
    // Eingabewerte aus dem Formular abrufen
    $Name1= $_POST['Name1'];
    $name2 = $_POST['name2'];
    $Name3= $_POST['Name3'];
    $Name4= $_POST['Name4'];
    $Name5= $_POST['Name5'];
    $Name6= $_POST['Name6'];
    $Name7= $_POST['Name7'];
    $Name8= $_POST['Name8'];
    $Name9= $_POST['Name9'];

    // Bildvorlage für die Rechnung laden
    $img = imagecreatefromjpeg('Vorlage.png');

    // Schriftart festlegen (benutzerdefinierte Schriftart im gleichen Verzeichnis wie das Skript platzieren)
    $font = './meine_schriftart.ttf';

    // Textfarbe festlegen
    $textColor = imagecolorallocate($img, 0, 0, 0);

    // Text auf dem Bild rendern
    imagettftext($img, 12, 0, 100, 150, $textColor, $font, $Name1);
    imagettftext($img, 12, 0, 100, 180, $textColor, $font, $Name2);
    imagettftext($img, 12, 0, 100, 210, $textColor, $font, $Name3);
    imagettftext($img, 12, 0, 100, 240, $textColor, $font, $Name4);
    imagettftext($img, 12, 0, 100, 300, $textColor, $font, $Name5);
    imagettftext($img, 12, 0, 100, 270, $textColor, $font, $Name6);
    imagettftext($img, 12, 0, 100, 300, $textColor, $font, $Name7);
    imagettftext($img, 12, 0, 100, 300, $textColor, $font, $Name8);
    imagettftext($img, 12, 0, 100, 300, $textColor, $font, $Name9);
    );
    // Rechnungsbild anzeigen
    header('Content-type: image/jpeg');
    imagejpeg($img);
    imagedestroy($img);
    exit;
    }
    }
    ?>

    <html>
    <head>
    <title>Rechnungsgenerator</title>
    </head>
    <body>
    <div>
    <form action="#" method="post">
    <label>Name1</label>
    <input type="text" name="Name1" required><br>

    <label>Name2</label>
    <input type="text" name="Name2" required><br>

    <label>Name3</label>
    <input type="text" name="Name3" required><br>

    <label>Name4</label>
    <input type="text" name="Name4" required><br>

    <label>Name5</label>
    <input type="text" name="Name5" required><br>

    <label>Name6</label>
    <input type="text" name="Name6" required><br>

    <label>Name7</label>
    <input type="text" name="Name7" required><br>

    <label>Name8</label>
    <input type="text" name="Name8" required><br>

    <label>Name9</label>
    <input type="text" name="Name9" required><br>

    <button type="submit" name="generate">Document generieren</button>
    </form>
    </div>
    </body>
    </html>


    Nur hab ich keine Ahnung wie ich an die richtige Position komme von jeder Schriftebene
    P.S -Shane

  10. #9
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Unter dem letzten imagettftext Aufruf steht ");", die Klammer wird nirgendwo geöffnet und das Skript mit einem Syntaxfehler abbrechen lassen. Einen, den du zudem nur in den Serverlogs sehen wirst, weil ganz am Anfang alle Fehlerausgaben abgeschaltet wurden... So viel zum Thema künstliche Intelligenz. Wenn ChatGPT & co. wirklich intelligent wären, würden sie solchen offensichtlichen Unsinn nicht erzeugen, weil sie die Grammatik einer Sprache verstehen. Sind und tun sie aber nicht, weil das nur maschinelles Lernen ist. Vereinfacht gesagt schaut der Algorithmus, was für Wörter/Buchstaben mit hoher Wahrscheinlichkeit in einem Kontext aufeinander folgen. Das hat er aus großen Datensätzen gelernt, die OpenAI seit V4 unter Verschluss hält - d.H. keiner weiß, wie qualitativ die Daten sind, mit denen steht und fällt das ganze aber ganz wesentlich. Wenn die wenig taugen, gilt shit in, shit out. Oft kommt bei so was kein 100% fertig funktionsfähiger Code heraus. Das ist eher tauglich, um Tipp- und Recherchearbeit zu sparen. Wenn du so was weißt, korrigierst du halt die Hand voll offensichtlicher Fehler und hast damit wesentlich schneller einen PoC, als wenn man alles erst von Hand zusammen suchen und selbst schreiben muss. Tust du das nicht, ist ein von Menschen geschriebener Artikel mit getestetem Beispielcode sicher wesentlich einfacher, als unerfahren nach den Fehlern zu suchen, die OpenAI dort versteckt hat.

    CSS spielt da überhaupt nicht mit, das Bild wird komplett Serverseitig mit im dem Fall PHP generiert. Wie im vorherigen Beitrag bereits gesagt: Entweder misst du das mit dem Lineal, oder probierst es einfach aus. Die Parameter sind in der Dokumentation beschrieben: #2 ist Größe, #3 Winkel, #4 & 5 die X/Y Koordinaten. Letztere brauchst du. Wenn die Felder untereinander und bündig sind, muss X nur einmal ermittelt werden und lediglich Y verschiebt sich. So hat ChatGPT das auch verstanden und fügt zumindest bei den ersten immer 30px hinzu - außer bei 5 und 7 - 9, da hat es wieder Mist gebaut. Diesmal keine Syntaxfehler, sondern Logikfehler. An der Stelle würden die Texte von 4 Feldern an die exakt gleiche Stelle geschrieben werden.

    Erst mal musst du aber mindestens die Syntaxfehler fixen, sonst wird das Skript überhaupt kein Bild ausgeben. Alle anderen Texte sehen auf den ersten Blick in Ordnung aus und sollten funktionieren, wenn die Schrift an der Stelle lesbar ist ($textColor ist schwarz).

    Um eine Rechnung zu generieren, würde ich grundsätzlich tatsächlich eher HTML/CSS nutzen und bei Bedarf daraus ein PDF generieren. Sofern sich keine fertige Software dafür findet, die den Anwendungsfall mit dem in der Regel benötigten Drum herum (Kundenstammsatz mit entsprechenden Verknüpfungen z.B.) abbilden kann. Im besten Falle muss dann gar nichts programmiert sondern lediglich die Software installiert und eingerichtet werden.


  11. #10
    Avatar von sam3nx
    Registriert seit
    21.01.2022
    Beiträge
    11
    Thanked 2 Times in 2 Posts

    Standard AW: Text aus PSD Datei in eigener Anwendung extrahieren.

    Mir geht es ja letztendlich nur darum, dass ich mit Zeileneingabe1, Zeileneingabe2 auch die Textebene1, Textebene2 aus der PSD verbinde bzw mit Zeileneingabe oder Text in Textbox1, Textbox1 an die richtige Position setze.

    Ich frag mir echt, ob ich einfach zu dumm bin sowas zu koppeln oder ob's echt nicht SOOOO leicht ist, wegen Framework undso

    Nächster Test in dann eine Python Konsolenanwendung geworden

    Er fragt mich zwar korrekt ab, aber er printet einfach nicht den Text auf das Bild, ich geh noch kaputt an dieser kleinen Kacke xd



    from PIL import Image, ImageDraw, ImageFont
    import base64

    # Bildvorlage für die Rechnung laden
    vorlage = Image.open('rechnung1.png')

    # Eingabewerte für die Rechnung abrufen
    vorname = input("Vorname: ")
    name = input("Name: ")
    geburtsdatum = input("name: ")
    staatsangehörigkeit = input("Name: ")
    geburtsort = input("Name: ")
    ablaufdatum = input("Name: ")
    code = input("Name: ")
    prüfnummer = input("Name: ")
    unterschrift = input("Name: ")

    # Schriftart festlegen
    font = ImageFont.truetype('./OCRB Regular.ttf', 12)

    # Zeichenfläche für das Zeichnen des Textes erstellen
    zeichnung = ImageDraw.Draw(vorlage)

    # Textfarbe festlegen
    textfarbe = (0, 0, 0) # Schwarz

    # Text auf dem Bild rendern
    zeichnung.text((112, 36), Name, font=font, fill=textfarbe)
    zeichnung.text((228, 35), Name, font=font, fill=textfarbe)
    zeichnung.text((289, 43), Name, font=font, fill=textfarbe)
    zeichnung.text((100, 240), Name, font=font, fill=textfarbe)
    zeichnung.text((100, 300), Name, font=font, fill=textfarbe)
    zeichnung.text((100, 270), Name, font=font, fill=textfarbe)
    zeichnung.text((203, 39), Name, font=font, fill=textfarbe)
    zeichnung.text((369, 46), Name, font=font, fill=textfarbe)
    zeichnung.text((302, 108), Name, font=font, fill=textfarbe)
    # Vorlage mit eingefügtem Text anzeigen
    vorlage.show()

    # Optional: Speichern des bearbeiteten Bildes
    vorlage.save('rechnungbearbeitet.bmp')
    P.S -Shane

Seite 1 von 2 12 Letzte

Ähnliche Themen

  1. [VBA] Text von einem PDF extrahieren in eine DB
    Von Saad im Forum Skriptsprachen
    Antworten: 0
    Letzter Beitrag: 03.11.2017, 15:26
  2. AHK Anwendung decompilen
    Von x BoooM x im Forum Reverse Engineering
    Antworten: 4
    Letzter Beitrag: 06.02.2017, 00:29
  3. Windows 10 erkennt jar Datei als rar Datei
    Von Y zu dem K im Forum Windows
    Antworten: 5
    Letzter Beitrag: 02.10.2015, 19:10
  4. VB.Net Anwendung Schützen/Eigener Installer
    Von mkdir im Forum .Net
    Antworten: 6
    Letzter Beitrag: 20.02.2012, 20:54
  5. Textbox1.Text = Textbox7.Text + keys.enter
    Von gcp im Forum Hochsprachen
    Antworten: 20
    Letzter Beitrag: 22.03.2011, 22:13
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.