tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von HonniCilest
  • 1 Beitrag von Xym
ERLEDIGT
JA
ANTWORTEN
14
ZUGRIFFE
854
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    Ich glaube, dass es eine ganz einfach Lösung für das Problem gibt, aber ich finde sie einfach nicht...
    Es geht darum das ich eine Grafik selber male. Diese will ich in ein Bild speichern und das dann auch wieder zeichnen.
    Im Anhang würde ich z.B. alles im roten Bereich in einem Bild speichern wollen und dieses dann hinter der neuen Grafik malen.
    Bin für jede Hilfe dankbar .
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Image erstellen.-unbenannt.jpg  
     

  2. #2
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Zitat Zitat von Xym Beitrag anzeigen
    Ich glaube, dass es eine ganz einfach Lösung für das Problem gibt, aber ich finde sie einfach nicht...
    Es geht darum das ich eine Grafik selber male. Diese will ich in ein Bild speichern und das dann auch wieder zeichnen.
    Im Anhang würde ich z.B. alles im roten Bereich in einem Bild speichern wollen und dieses dann hinter der neuen Grafik malen.
    Bin für jede Hilfe dankbar .
    Suchst du eventuell soetwas?
    http://www.exampledepot.com/egs/java...phic2File.html

    Siehe auch http://download.oracle.com/javase/1....o/ImageIO.html
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  3. #3
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Les dir mal das Kapitel hier durch: http://openbook.galileocomputing.de/...sel_20_006.htm

    Zum Zeichnen könnte das hier noch hilfreich sein: http://openbook.galileocomputing.de/...d78fd92dd27a56
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  4. #4
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    Die Links sind zwar gut und interessant, dennoch hat es mir nicht geholfen den roten teil in ein Image bzw. BufferedImage zu bekommen...
     

  5. #5
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Wo genau kommst du nun nicht weiter? Hast du eventuell 'nen Codeschnipsel für uns?
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  6. #6
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    Also was ich vor habe ist, dass ich 1. das gemalte bild speichern will. 2. das Bild drucken.
    Das einzige was euch helfen könnte wäre die paint-methode:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    
    public void paint(Graphics g)
      {
       if(bild==true)
       {
         g.drawImage(ladebild,0,120,null);
         bild=false;
       }
       if(start==0)
       {
         g.setColor(Color.white);
         g.fillRect(1,120,1000,1000);
         start=1;
       }
       if(yk>=120)
       {
        if(s==true)
        {
          if(t==2)
          {
            g.setColor(new Color(f1,f2,f3));
            g.drawLine(x[i-2],y[i-2],xp,yp);
            t=0;
            i=0;
          }
        }
     
        if(n==true)
        {
          g.setColor(Color.white);
          g.fillRect(1,120,1000,1000);
          n = false;
          p = false;
          l = false;
          k = false;
          r = false;
        }
     
        if(r==true)
        {
         if(rs==1)
         {
          if(t==2)
          {
            g.setColor(new Color(f1,f2,f3));
            g.drawRect(x[i-2],y[i-2],x[i-1],y[i-1]);
            t=0;
            System.out.println(rs);
          }
         }
         if(rs==2)
         {
          if(t==2)
          {
            g.setColor(new Color(f1,f2,f3));
            g.fillRect(x[i-2],y[i-2],x[i-1],y[i-1]);
            t=0;
            System.out.println(rs);
          }
         }
        }
     
        if(p==true)
        {
         if(rs==1)
         {
           g.setColor(new Color(f1,f2,f3));
           g.drawPolygon(x,y,ne);
         }
         if(rs==2)
         {
          g.setColor(new Color(f1,f2,f3));
          g.fillPolygon(x,y,ne);
         }
        }
     
        if(k==true)
        {
         if(rs==1)
         {
           if(t==2)
           {
             g.setColor(new Color(f1,f2,f3));
             g.drawOval(x[i-2],y[i-2],x[i-1],y[i-1]);
             t=0;
           }
         }
         if(rs==2)
         {
          if(t==2)
          {
            g.setColor(new Color(f1,f2,f3));
            g.fillOval(x[i-2],y[i-2],x[i-1],y[i-1]);
            t=0;
          }
         }
        }
     
        if(l==true && ls==true)
        {
          g.setColor(new Color(f1,f2,f3));
          g.fillOval(xk,yk,stärke,stärke);
        }
       }
      }

    Also xk,yk sind die Koordinaten von der Maus.
    Die Arrays x[] und y[] werden nach neuem Buttonklick gelöscht.
    Hoffe das hilft irgendwie weiter.

    Ahso das Problem das die alten Sachen übermalt werden habe ich so gelöst das ich die Grafik im JFrame direkt mit Paint male, und nicht in einer neuen Klasse mit paintComponent male.
     

  7. #7
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Zitat Zitat von Xym Beitrag anzeigen
    Also was ich vor habe ist, dass ich 1. das gemalte bild speichern will. 2. das Bild drucken.
    Ich würde es etwa so versuchen...
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    public void savePicture() {
            //Zielpfad holen
            
            //BufferedImage generieren
            BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
            Graphics2D g2d = bufferedImage.createGraphics();
            
            //g2d bemalen oder Graphics der bemalten Component übertragen
            
            //speichern
            File file = new File(targetPath);
            ImageIO.write(bufferedImage,fileType,file);
    }
     
    public void printPicture() {
            //PrintJob generieren
            PrintJob printJob = getToolkit().getPrintJob(frame, jobtitel, properties);  
            Graphics2D g2d = printJob.createGraphics();
            
            //g2d bemalen oder Graphics der bemalten Component übertragen
            
            //drucken
            printJob.end();
    }
    Geändert von HonniCilest (12.04.11 um 17:31 Uhr)
    Xym bedankt sich. 
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  8. #8
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    Es funktioniert leider immer noch nicht ....

    Also beim Speichern ist das Problem, dass er es nicht als jpg, gif oder png abspeichert sondern einfach alls Datei.

    Das Speichern hatte ich bis jetzt so geregelt :
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    JFileChooser fc = new JFileChooser();
              int state = fc.showSaveDialog( null );
     
              if ( state == JFileChooser.APPROVE_OPTION )
              {
                File file = fc.getSelectedFile();
                  try
                  {
                    BufferedImage bufferedImage = new BufferedImage(1000,800, BufferedImage.TYPE_INT_RGB);
                    Graphics2D g2d = bufferedImage.createGraphics();
                    ImageIO.write(bufferedImage,"png",file);
                  }
                  catch(IOException i ){ }
     
              }
              else
              System.out.println( "Auswahl abgebrochen" );

    Und beim Drucken findet er den Befehl pjog.createGraphics(); nicht.
    Obwohl ich diese Packe importiere:
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.awt.print.*;
    import javax.imageio.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.print.*;
    import javax.swing.filechooser.*;

    Drucken hab ich bis jetzt so :
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
             PrinterJob pjob = PrinterJob.getPrinterJob();
             try
             {
              if ( pjob.printDialog() == false )
              return;
              Graphics2D g2d = pjob.createGraphics();
              pjob.print();
              pjob.end();
             }
     
             catch(PrinterException ep)
             {
     
             }
     

  9. #9
    KlyX KlyX ist offline Mitglied
    Registriert seit
    Apr 2004
    Beiträge
    10
    Soweit ich das beurteilen kann ist dein Problem unlösbar
     

  10. #10
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    Informatikerweisheit:

    Jedes Problem ist durch die Beseitigung seiner Ursachen lösbar.
    Es muss eine Möglichkeit geben.
    KlyX bedankt sich. 

  11. #11
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    Ich hoffe, dass jemand anders noch sinnvolle Beiträge hat.
     

  12. #12
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Also beim Speichern ist das Problem, dass er es nicht als jpg, gif oder png abspeichert sondern einfach alls Datei.
    Dein größtes Problem ist, dass du dich scheinbar nicht so ganz mit der Sache auskennst. Das Bild kann nur als Datei gespeichert werden (welche Speichermethode sonst?)
    Die Dateiendung bestimmst du selbst. Wichtig ist, dass sie mit dem Inhalt übereinstimmt. Die Datei kann natürlich ein JPEG-Bild sein, und trotzdem ohne Dateiendung abgespeichert werden. Du solltest dir vielleicht grundlegende Computerkenntnisse aneignen.

    Dein Speichern kann außerdem nicht funktionieren, weil du in das Graphics-Objekt, das du dir holst, nicht hinein zeichnest.

    Die Methode PrinterJob.createGraphics(); existiert nicht. Deswegen kannst du auf sie nicht zugreifen. Wenn du dir den Beitrag von HonniCilest genauer ansiehst, steht da auch PrintJob, nicht PrinterJob.

    Außerdem ist es nicht empfohlen, so viele Pakete vollständig zu importieren. Das frisst nur unnötig Ressourcen! Dafür gibt es IDEs, die diese Arbeit (imports generieren) für dich erledigen.
    Geändert von genodeftest (12.04.11 um 21:23 Uhr)
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  13. #13
    Xym Xym ist offline Mitglied Gold
    Registriert seit
    Mar 2011
    Beiträge
    101
    okay, danke für eure Antworten!
     

  14. #14
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Und beim Drucken findet er den Befehl pjog.createGraphics(); nicht.
    Entschuldige, das muss getGraphics() heißen. Ich schätze mit einem Blick in die API wärst du sicher auch alleine darauf gekommen

    Schau bitte nochmal oben, da hatte ich anhand eines Kommetares angegeben, dass du Graphics2D auch noch bearbeiten musst!
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  15. #15
    SE Tutorials.de Gastzugang
    Zitat Zitat von genodeftest Beitrag anzeigen
    Außerdem ist es nicht empfohlen, so viele Pakete vollständig zu importieren. Das frisst nur unnötig Ressourcen! Dafür gibt es IDEs, die diese Arbeit (imports generieren) für dich erledigen.
    also bei allen projekten die ich bis jetzt entwickelt hab habe ich immer sämtliche pakete VOLLSTÄNDIG importiert die die klassen enthielten die ich brauchte ...
    nämlich aus dem grund weil ich keine 100 import zeilen haben will wenns mit 5 oder 10 auch geht ...
    außerdem : projekt mit vollständig importiertem javax.swing.* und java.awt.* machen weder die class größer noch brauchen sie bei der ausführung mehr speicher
    und ich glaube auch kaum das es sinnvoll ist so viele import-anweisungen zu haben ... nicht umsonst hat man in java die wildcards für imports ermöglicht ... ansonsten sähe das so stumpf wie in C aus ... jedes header-file einzeln importieren ...

    wenn du nämlich mal java im debug-modus laufen lässt und dir den verbose-output ankuggst dann siehst du das die JVM nur die klassen läd die gebraucht werden ... und das völlig unabhängig von den imports ... die sind im großen und ganzen nur dazu da dem compiler die verwendeten klassen bekannt zu machen so das er dann z.b. Driver immer mit java.sql.Driver verbindet und du es nicht jedes mal dazuschreiben musst ...
     

Ähnliche Themen

  1. Image aus Speicherbereich erstellen ?
    Von Hroudtwolf im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 03.04.07, 14:17
  2. Image erstellen / CD auslesen
    Von Jens Bond im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 11.10.05, 00:12
  3. Image via PHP erstellen mit hintergrundbild
    Von Manhunter im Forum PHP
    Antworten: 17
    Letzter Beitrag: 11.09.05, 21:36
  4. Aus lokalem Ordner DVD Image erstellen
    Von Flame im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 10.04.05, 09:56
  5. Image erstellen
    Von Arne Buchwald im Forum Photoshop
    Antworten: 41
    Letzter Beitrag: 22.10.01, 16:19