MrWurf: Malen mit JMagick

Hi allerseits,

vielleicht kennen einige von euch JMagick, die Javaanbindung von ImageMagick. Vorsicht lahmer Server
Ich versuche da gerade ein Bild zu zeichnen und dann abzuspeichern. Einen Text habe ich schon hinbekommen (weils eine Doku gab), beim Rechteck bin ich gnadenlos gescheitert. Hier mein jämmerlicher Versuch:

DrawInfo di = new DrawInfo(new ImageInfo());
  di.setPrimitive("rectangle");
  di.setUnderColor(pp);
  di.setFill( pp);
  di.setOpacity(0);
  di.setGeometry("10x29+30+40");
  di.setBorderColor(pp);
            img.drawImage(di);

Habt ihr einen Hinweis dazu?

Gruß
Kube

  1. Hallo MrWurf,

    Einen Text habe ich schon hinbekommen (weils eine Doku gab), beim Rechteck bin ich gnadenlos gescheitert. Hier mein jämmerlicher Versuch:

    DrawInfo di = new DrawInfo(new ImageInfo());
      di.setPrimitive("rectangle");
      di.setUnderColor(pp);
      di.setFill( pp);
      di.setOpacity(0);
      di.setGeometry("10x29+30+40");
      di.setBorderColor(pp);
                img.drawImage(di);

    Was bedeutet du bist "gnadenlos gescheitert"? Gab es eine oder mehrere Fehlermeldungen? Wenn ja, welche? Wenn nein, was ist dein Resultat, und was für ein Resultat (genau beschrieben) hast du erwartet?
    Welcher String ist in der Variable "pp" zu finden? Wie hast du die Variable "img" initialisiert?
    Hast du bereits in die JavaDoc von JMagick geschaut?

    Fragen über Fragen... ;-)

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
    1. Hi Marc,

      Was bedeutet du bist "gnadenlos gescheitert"?

      Es sollte ein Rechteck rauskommen, kam es aber nicht, auch nichts anderes, eine Fehlermeldung auch nicht.

      Hast du bereits in die JavaDoc von JMagick geschaut?

      da stehen, wie es sich für eine Javadoc gehört, nur Tautologien drin.
      Auszug gefällig:

      void setGeometry(java.lang.String geometry)
               Set the geometry field in the DrawInfo.
      void setOpacity(int gravity)
                Set the opacity attribute in the DrawInfo handle.

      Fragen über Fragen... ;-)

      Und ich habe die Antwort gefunden! Man muss einfach alle Parameter in einen String packen und einer Methode mit dem treffenden Namen setPrimitive() übergeben.

      DrawInfo di = new DrawInfo();
      di.setPrimitive(" fill-opacity 1 rectangle 12,23 34,56");

      Solche Schnittstellen hab ich am liebsten!
      Gruß
      MrWurf