EAN-Strichcode nach dem erstellen als Bild spechern

  • Moin Moin.

    Ich erstelle mit folgendem Script ein EAN-Barcode und möchte, das wenn man auf "Go" klickt, nicht nur der Barcode erstellt wird, sondern dieser auch als Bilddatei gespeichert wird. Scannt man die "9783608890341" soll die Bild-Datei "9783608890341.jpg" heißen und im gleichen Ordner gespeichert werden.

    Nur wie?

    Spoiler anzeigen
    [autoit]


    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <print.au3>
    #include <barcode.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #AutoIt3Wrapper_run_obfuscator=y
    #Obfuscator_parameters=/so

    [/autoit] [autoit][/autoit] [autoit]

    $barcode_test = GUICreate("EAN-13 Test", 205, 140, -1, -1)
    GUICtrlCreateLabel("SCAN:", 10, 10, 30, 17)
    $Input = GUICtrlCreateInput("", 45, 8, 120, 21)
    $go = GUICtrlCreateButton("go",170,8,30,20)

    [/autoit] [autoit][/autoit] [autoit]

    $barcode = GUICtrlCreateLabel("", 10, 40, 185, 90)
    GUICtrlSetFont(-1, 48, 400, 0, "EAN 13")
    GUICtrlSetBkColor(-1, 0xFFFFFF)

    [/autoit] [autoit][/autoit] [autoit]

    $type = "EAN 13"
    $size = "36"

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $go ; and save to *.jpg z. B. 9783608890341.jpg ggf. überschreiben
    GUICtrlSetFont($barcode, $size, 400, 0, 'Code EAN13')
    $barcode_data = barcode_ean13(StringLeft(GUICtrlRead($Input), 12))
    GUICtrlSetData($barcode, $barcode_data)
    GUICtrlSetData($Input, "")
    EndSwitch
    WEnd

    [/autoit]

    Die Schriftarten, Includedateien, usw. als gepackte Datei in der Anlage (nicht von mir).

    Dateien

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    2 Mal editiert, zuletzt von Alina (12. Oktober 2014 um 18:54)

  • Hi Alina,
    obwohl ich täglich Barcode/Scancode-Anwendungen programmiere und reichlich Dokumente mit Barcodes erstellt werden, habe ich keinen einzigen "Barcode" als Bild gespeichert. Kein Mensch braucht einen einzelnen Barcode als Bild auf einem Datenträger! Barcodes werden erstellt um gescannt zu werden, als Datei sind sie völlig nutzlos. Zudem ist jpg infolge Kompressionsartefakte das schlechteste Dateiformat, die extrahierten Bilder werden von Scannern oft nicht, oder noch viel schlimmer, fehlerhaft gelesen!

    Gebraucht wird der Barcode doch in einer Anwendung. Also ein Ausdruck, welcher dann später gescannt werden kann.
    In der Anwendung, die diesen Barcode erstellt, solltest du ansetzen.
    Beschreibe doch mal das Szenario, was du mit dem Barcode anstellen möchtest.

  • Andy.

    Es geht "welcher dann später gescannt werden kann".
    Den Code kann ein Scanner lesen und das einwandfrei.
    Habe ja ein Screenshot erstellt, ausgedruckt udn getestet.
    Kann auch ein anderes Bildformat sein. Nur später auf
    Klebeetiketten ausdrucken und dann nutzen.

    Eine Anwendung nutze ich dann auch, nämlich eine
    Verwaltung von Büchern, auf den dann die Aufkleber
    kommen und man die dann kontrollieren kann, ob und
    wer was ausgeliehen hat. Bücher haben ISBN Nummern,
    aber nicht z. B. eingelagerte Aktenbeilagen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hey Alina,

    Das ist aber eine unsaubere Lösung. Da würde ich dir lieber die hier empfehlen. Ist zwar auf italienisch, sollte aber selbsterklärend sein. Musst einfach nur z.B. "Salva Immagine" übersetzten zu "Speichere Bild" etc.

    http://www.blogbox.it/autoit-generat…ean-13-e-ean-8/
    http://s5.histats.com/stats/r.php?2194708&100&69213&urlr=&www.blogbox.it/wp-content/uploads/2014/01/AutoIt-Generatore-Barcode.rar

    Gruß,
    Spider

  • DAS DOCH MAL FEIN !!!
    Das kann ich gut anpassen.

    GtaSpider : wie kommt man auf solche Seiten??

    D A N K E !!!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (12. Oktober 2014 um 20:09)

  • Also nochmal für Blöde wie mich...

    Du willst die Codes

    Zitat von Alina

    Nur später auf
    Klebeetiketten ausdrucken und dann nutzen.

    WOZU willst du die Codes dann als Bild speichern? Druck doch die Codes direkt auf das Klebeetikett, so mache ich das doch auch, Hunderte jeden Tag. Es gibt keinerlei Grund, dazu ein "Bild" zu erstellen?!

    Wenn du "Alina" auf ein Klebeetikett drucken willst, erstellst du dann ein "Bild" mit Inhalt "Alina" und speicherst es?

  • Nur der Vollständigkeit halber habe ich hier noch eine Antwort auf die ursprüngliche Frage: Wie man eine "Kopie" von einem Control als Bild speichert.

    AutoIt macht uns das mit den Standard-Includes ganz leicht möglich - in nur einer Zeile. Dabei nutzen wir das Wissen, dass ein "Control" eigentlich nichts anderes als eine abgeleitete Unterklasse (Subclass) eines Fenster ist. Die ScreenCapture.au3 enthält die Funktion _ScreenCapture_CaptureWnd(), welche eigentlich dafür gedacht ist, einen Screenshot von einem bestimmten Fenster anhand des Handles anzufertigen und in einer Datei zu speichern.

    Relevant ist hier Zeile 37. ;)

    Spoiler anzeigen
    [autoit]


    #include <Screencapture.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <print.au3>
    #include <barcode.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #AutoIt3Wrapper_run_obfuscator=y
    #Obfuscator_parameters=/so

    [/autoit] [autoit][/autoit] [autoit]

    $barcode_test = GUICreate("EAN-13 Test", 205, 140, -1, -1)
    GUICtrlCreateLabel("SCAN:", 10, 10, 30, 17)
    $Input = GUICtrlCreateInput("", 45, 8, 120, 21)
    $go = GUICtrlCreateButton("go",170,8,30,20)

    [/autoit] [autoit][/autoit] [autoit]

    $barcode = GUICtrlCreateLabel("", 10, 40, 185, 90)
    GUICtrlSetFont(-1, 48, 400, 0, "EAN 13")
    GUICtrlSetBkColor(-1, 0xFFFFFF)

    [/autoit] [autoit][/autoit] [autoit]

    $type = "EAN 13"
    $size = "36"

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $go ; and save to *.jpg z. B. 9783608890341.jpg ggf. überschreiben
    $sNumBarcode = StringLeft(GUICtrlRead($Input), 12)
    GUICtrlSetFont($barcode, $size, 400, 0, 'Code EAN13')
    $barcode_data = barcode_ean13($sNumBarcode)
    GUICtrlSetData($barcode, $barcode_data)
    _ScreenCapture_CaptureWnd($sNumBarcode & ".png", GUICtrlGetHandle($barcode))
    EndSwitch
    WEnd

    [/autoit]

    Gruß!