BufferedImage etc

Status
Nicht offen für weitere Antworten.
I

ichbinsnur

Gast
Hi,


ich habe mal wieder was geschrieben...


Naja, klappt nur leider nicht... :roll:


Also, ich durchsuche eine Internetseite nach Bildadressen und lasse anschließend die Bilder lokal speichern. Nur, ich bekomme kein Bild. :cry:


Code:
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.net.URL;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;

public class image
{
	Pattern p = Pattern.compile("src=\"(.*?)\" "); 
	
    private image()
    {
        do
        {
        	BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
        	String input;
        	try {
    			if((input = buffer.readLine()) != null)
    			{
  				if(input.startsWith("saveimg"))
  				{
                    StringTokenizer stringtokenizer = new StringTokenizer(input, " ");
                    String s29 = stringtokenizer.nextToken();
                    String s34 = stringtokenizer.nextToken();         
                    String verzeichnis = stringtokenizer.nextToken();   
                    URL url = new URL((new StringBuilder()).append(s34).toString());
                    BufferedReader br = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
                   
                    
                      String line;                    
                      LineNumberReader f = new LineNumberReader(new BufferedReader(new InputStreamReader(url.openConnection().getInputStream())));                     
                      while ( (line = f.readLine()) != null ) 
                      a2 = f.getLineNumber();
                      f.close();
  				    
                    
                    for(int j1 = 0; j1 < a2; j1++)
                    {
                    zeile = br.readLine();                    
                    if(zeile.indexOf("src=\"") >= 0 )
                    { 
                    	Matcher m = p.matcher(zeile); 
                    	m.reset();      

                    	while (m.find()) {
                    		a = m.group();
                    		System.out.println(a);
                    		a = a.replaceFirst("src=\"", ""); 
                    		a = a.replaceFirst("\"", ""); 
                    		System.out.println(a);
                    	}
                    	
                    	if(!a.startsWith("http://"))
                    	{
                    		if(a.startsWith("/"))
                    		{
                    			a = a.replaceFirst("/", "");
                    		}
                    		a = verzeichnis + a;
                            try {
                                URL urla = new URL(a);
                                imagew = ImageIO.read(urla);
                            } catch(Exception ex){
                                ex.printStackTrace();
                            } 
                    		System.out.println(a);
                    	}
                    	if(a.startsWith("http://"))
                    	{   
                    		System.out.println(a);
                            try {
                                URL urlz = new URL(a);
                                imagew = ImageIO.read(urlz);
                            } catch(Exception ex){
                                ex.printStackTrace();
                            } 
                    	}
                    	
                        try {
                        	
                        if(a.endsWith(".gif") || a.endsWith(".GIF"))
                        {
                        	int j = (int)(Math.random() * 43467D + 10560D);
                        	name = (Integer.toString(j) + ".gif");
                        ImageIO.write(imagew,"gif", new File(name));
                        }
                        if(a.endsWith(".jpg") || a.endsWith(".jpeg"))
                        {      
                        	int j = (int)(Math.random() * 43467D + 10560D);
                        	name = (Integer.toString(j) + ".jpg");
                        ImageIO.write(imagew,"jpg", new File(name));
                        }                    
                    } catch(Exception ex){
                        ex.printStackTrace();
                    }
                    	
                    }                   
                    }
  				
                    }
    			}
        	
    		} catch (IOException e) {
    			e.printStackTrace();
    		} 
        } while(true);
    }
   
    public static void main( String[] args ) 
    {
		new image();    	
    }
    private BufferedImage imagew; 
    public String zeile;
    String a;
    String name;
    int a2;
}



Weiß jemand ganz spontan wo der Fehler liegt? Ich sitze jetzt echt schon einige Zeit davor, aber ich weiß keinen Ausweg.

Um nochmal klar zu gehen, das wirklich am Ende die richtige URL rauskommt, lasse ich die einzelnen Schritte nochmals ausgeben, das geht alles, nur beim Speichern hakt es.



lg.
 
I

ichbinsnur

Gast
ouh man.

Warum wird man hier verdächtigt, nur weil der String halt s29 oder s34 heißt?
Kann es euch / dir nicht egal sein, wie ich meine Strings bennene?

Naja, deine Sache, ich weiß wer das oben geschrieben hat. Fängt zufälligerweise mit "i" an.
 
G

Guest

Gast
Was genau bedeutet denn s29 und s34 nun, das würde für das Verständnis deines Problems eventuell hilfreich sein.
 

NTB

Bekanntes Mitglied
Beim Lesen habe ich mich gerade auch gefragt, was denn "S34" sein soll. Das war wohl von dem Gast eher der sarkastische Hinweis darauf, dass eindeutige Variablennamen zum leichteren Verständnis beitragen. Sowohl Du selbst verstehst Deinen Code besser, als auch die Leute, die ihn lesen sollen und von denen Du Dir hilfe erhoffst.

Die Beschreibung "Ich bekomme kein Bild" ist natürlich sehr knapp. Du behauptest, dass der Url String richtig erkannt werde, dann brich doch Dein Problem auf die Problemstelle herunter. Sprich: Schreib Dir eine Testklasse, in die Du Hardcode eine feste URL zu einem Bild hineinschreibst. Z.B. die URL zu einem der Icons hier im Forumsmenu oder sowas.
Die kann man als Leser dann auch mal eben schnell testen und Du erkennst selbst vielleicht viel schneller, wo das Problem ist.
 
G

Guest

Gast
Ich habe natürlich auch gemerkt, daß s29 nie wieder verwendet wird aber ich wollte vom "Autor" gerne wissen, was damit gemeint ist. Für mich ist das ganz klar ein "Klau", wie auch immer praktisch realisiert.
 

NTB

Bekanntes Mitglied
Naja, sieht schon teilweise sehr merkwürdig aus :) Aber darum geht's ja nicht... In dubio pro reo... und sein Problem bleibt bestehen. Aber Tips sind ja jetzt da.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D BufferedImage resize Allgemeine Java-Themen 16
RalleYTN JOGL Texture in BufferedImage konvertieren Allgemeine Java-Themen 1
M Input/Output BufferedImage vertauscht width und height Allgemeine Java-Themen 6
G BufferedImage und ByteArray Allgemeine Java-Themen 2
P Threads BufferedImage, Thread Concurrency Allgemeine Java-Themen 1
M Problem mit BufferedImage und PrinterJob im Querformat Allgemeine Java-Themen 1
T BufferedImage verändert sich beim Einlsesen Allgemeine Java-Themen 1
M BufferedImage toString() überschreiben Allgemeine Java-Themen 5
Thallius PDF von einem BufferedImage erstellen Allgemeine Java-Themen 1
S BufferedImage vergleich mit Subimage Allgemeine Java-Themen 1
reibi OutOfMemoryError bei Behandlung von BufferedImage's Allgemeine Java-Themen 6
TheSorm BufferedImage spiegeln Allgemeine Java-Themen 3
A BufferedImage einzelne Pixel transparent machen V2.0 Allgemeine Java-Themen 2
S Undoable BufferedImage? Allgemeine Java-Themen 2
lumo 2D-Grafik BufferedImage und operationen darauf Allgemeine Java-Themen 2
K Image zu BufferedImage konvertieren Allgemeine Java-Themen 9
H BufferedImage Invertieren Allgemeine Java-Themen 13
D md5 berechnen für BufferedImage Allgemeine Java-Themen 5
D BufferedImage rotieren Allgemeine Java-Themen 8
TiME-SPLiNTER Binary BufferedImage automatisch croppen Allgemeine Java-Themen 4
F byte[] aus einem BufferedImage Allgemeine Java-Themen 3
0 BufferedImage - Farbton verändern Allgemeine Java-Themen 5
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
T umwandeln BufferedImage to File Allgemeine Java-Themen 7
reibi BufferedImage nach InputStream Allgemeine Java-Themen 10
Q BufferedImage enzelne Pixel tranzparent machen Allgemeine Java-Themen 2
S BufferedImage mit Transparenten Hintergrund Allgemeine Java-Themen 4
Z Farbe des Pixels rechts unten in einem BufferedImage? Allgemeine Java-Themen 4
R problem! bufferedimage speichern. Allgemeine Java-Themen 7
S BufferedImage als *.tga speichern Allgemeine Java-Themen 3
H Pixel im BufferedImage Manipulieren ? Allgemeine Java-Themen 17
Steev BufferedImage und setRGB() Allgemeine Java-Themen 10
P miese performance bei nem BufferedImage + repaint :( Allgemeine Java-Themen 6
M Drucken mit BufferedImage Allgemeine Java-Themen 9
M Problem mit Durchsuchen von BufferedImage Allgemeine Java-Themen 10
F BufferedImage -> Image Allgemeine Java-Themen 4
G BufferedImage benutzen Allgemeine Java-Themen 6
U BufferedImage.getSubimage ? paintComponent ? Allgemeine Java-Themen 4
T Bilder schnell in BufferedImage laden Allgemeine Java-Themen 4
G BufferedImage zeichnen Allgemeine Java-Themen 4
T BufferedImage aus einem byte-Array? Allgemeine Java-Themen 2
T BufferedImage problem Allgemeine Java-Themen 6
K 32-Bit grayscale BufferedImage Allgemeine Java-Themen 2
T Geschwindigkeit bei Polygonen und BufferedImage Allgemeine Java-Themen 9

Ähnliche Java Themen


Oben