Gunther: ImageMagick DLLs in VB.net einbinden

Hallo werte Selfgemeinde!

Seit kurzem beschäftige ich mich ja zur Abwechslung mit VB.net.
Erste Schritte waren auch schon recht erfolgreich (für meine Verhältnisse zumindest).

Nun habe ich eine kleine Anwendung "gestrickt", die mehr oder weniger ein GUI für einige Konsolen anwendungen darstellt.

Dabei wird u.a. zur Konvertierung zwischen verschiedenen Grafikformaten auch auf ImageMagick zurückgegriffen (sofern halt auf dem jeweiligen System installiert, was eben der Haken an der Sache ist).

Nun habe ich gesehen, oder genauer gesagt "ergoogelt", dass es auch DLLs/ Sourcen für NET gibt. Allerdings fallen sämtliche Erklärungen/ Beschreibungen äußerst kurz aus und scheinen mir somit nur für User geeignet, die sie vermutlich gar nicht brauchen würden. Ich jedenfalls komme damit nicht klar.

Von daher meine Frage/ Bitte, ob mir hier jemand netterweise erklären, bzw. dabei helfen kann, wie ich die notwendigen Dateien ggf. direkt in mein Projekt einbinden und verwenden kann?

Bin für jede Hilfe dankbar!

Gruß Gunther

  1. Bin wohl doch schon zu müde ...

    Nun habe ich gesehen, oder genauer gesagt "ergoogelt", dass es auch DLLs/ Sourcen für NET gibt.

    Hier noch der Link (falls es interessiert): ftp://ftp.imagemagick.org/pub/ImageMagick/dot-net/

    Gruß Gunther

    1. Hallo Gunther,

      Nun habe ich gesehen, oder genauer gesagt "ergoogelt", dass es auch DLLs/ Sourcen für NET gibt.
      Hier noch der Link (falls es interessiert): ftp://ftp.imagemagick.org/pub/ImageMagick/dot-net/

      wo liegt genau das Problem:

      allgemein beim Einbinden von DLLs in ein Projekt?
      speziell beim Zugriff auf die ImageMagick-DLL?

      Freundliche Grüße

      Vinzenz

      1. Hallo Vinzenz!

        wo liegt genau das Problem:

        allgemein beim Einbinden von DLLs in ein Projekt?
        speziell beim Zugriff auf die ImageMagick-DLL?

        Tja, wo soll ich da anfangen ...? ;-)

        Das Progrämmchen, welches ich da gerade bastel, ist ja im wesentlichen ein GUI für verschiedene kleine Kommandozeilen-Programme.
        Diese habe ich als Resourcen in mein Projekt eingebunden, sodass sie ohne weitere (vorherige) Installation zur Verfügung stehen.

        Für einen Schritt ist es nun u.a. notwendig, dass eine Grafik in einem der Formate wie bmp, gif, jpg oder png in eine Tiff-Datei mit 8Bit Paletten-Farben konvertiert wird.

        Dazu ist bislang eben ein zusätzliches externes Programm beim Anwender erforderlich, bzw. muss ImageMagick auf dem jeweiligen System installiert sein, damit meine Applikation auf dessen Kommandozeilen-Programme zugreifen kann (bin übrigens auf GraphicksMagick umgestiegen - ist ein IM Forke schlanker und schneller).

        Allerdings erfordert das eben die (vorherige) Installation durch den Anwender, was in Anbetracht der potentiellen Zielgruppe leider sehr "unschön" ist. Deshalb suche ich nach einer Möglichkeit, die benötigten Funktionen/ Programme ohne vorherige Installation bereitzustellen.

        Wie ich eine einzelne EXE-Datei einbinde und später verwende, habe ich schon gelernt. Bei den Massen an DLLs stehe ich allerdings total auf dem Schlauch.

        Frage:
        Kann das überhaupt so klappen, wie ich mir das vorstelle? Also die DLLs in mein VB.net Projekt einbinden und dann ohne vorherige Installation auf dem System des Anwenders verwenden?
        Wenn ja, wie stelle ich das an?

        Besten Dank für deine Hilfe.
        (Falls es dich interessiert, maile ich dir mein bisheriges Werk auch gerne mal zu, auch wenn der Code eben noch sehr anfängerhaft ist.)

        Gruß Gunther

        1. Hallo Gunther,

          allgemein beim Einbinden von DLLs in ein Projekt?
          speziell beim Zugriff auf die ImageMagick-DLL?

          Das Progrämmchen, welches ich da gerade bastel, ist ja im wesentlichen ein GUI für verschiedene kleine Kommandozeilen-Programme.

          ich kann mich an den Anfang erinnern. Aber mit dem Essen kommt der Appetit :-)

          Allerdings erfordert das eben die (vorherige) Installation durch den Anwender, was in Anbetracht der potentiellen Zielgruppe leider sehr "unschön" ist.

          das kann ich nachvollziehen.

          Deshalb suche ich nach einer Möglichkeit, die benötigten Funktionen/ Programme ohne vorherige Installation bereitzustellen.

          wenn Du DLLs einbindest, wird Dein Programm auf die Funktionen zugreifen, nicht auf ein Programm, d.h. Du musst in der Doku der DLL nachschauen, welche Funktionen Du benutzen musst, um Dein Ergebnis zu erhalten.

          Kann das überhaupt so klappen, wie ich mir das vorstelle? Also die DLLs in mein VB.net Projekt einbinden und dann ohne vorherige Installation auf dem System des Anwenders verwenden?

          Ja, genauso wie mit Deinen selbständigen Kommandozeilen-Programmen.

          Freundliche Grüße

          Vinzenz

        2. Hallo Gunther,

          (Falls es dich interessiert, maile ich dir mein bisheriges Werk auch gerne mal zu, auch wenn der Code eben noch sehr anfängerhaft ist.)

          kannst Du gerne tun. Deine im Beitrag angegebene Mailadresse wollte keine Mail von mir ...

          Freundliche Grüße

          Vinzenz

          1. Hallo Vinzenz,

            kannst Du gerne tun. Deine im Beitrag angegebene Mailadresse wollte keine Mail von mir ...

            na mit deiner Adresse sieht es aber auch nicht viel besser aus. ;-)

            Bekomme immer folgende Antwort:

            Technical details of permanent failure:
            Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 550 550 vinzenzmai@web.de Benutzer hat das Speichervolumen ueberschritten. / User has exhausted allowed storage space. (state 14).

            Wie es scheint, ist aber wenigstens eine Mail "durchgekommen" - somit hast du ja eine funktionierende Adresse von mir.

            Gruß Gunther

            1. Hallo Gunther,

              kannst Du gerne tun. Deine im Beitrag angegebene Mailadresse wollte keine Mail von mir ...
              na mit deiner Adresse sieht es aber auch nicht viel besser aus. ;-)

              was meinst Du, warum ich Dir eine Mail schicken wollte. Ich konnte mir vorstellen, dass mein Mailaccount wegen Überfüllung vorübergehend geschlossen werden würde, ich hab ja nur ein Freemail-Konto.

              Denke immer daran, dass Mailanlagen base64-codiert versandt werden und daher nochmals um ein Drittel im Umfang wachsen ...

              Freundliche Grüße

              Vinzenz