Problem beim Auslesen der Pixel eines Bildes



  • Ich lese in meinem Programm alle schwarzen Pixel eines Bildes (= alle Linien) in einen Vektor, der wird anschließend in ein xml-file gespeichert. wenn ich die pixel aber wieder auslese und anzeige, sieht das bild nicht so aus, wie es sollte. Ich glaube, dass der Fehler beim abspeichern liegt finde aber keinen.

    das (falsche) bild sieht dann grob so aus: links oben ist noch alles weiß (so wie es sein sollte) aber rechts unten ist alles schwarz. Zwischendrin sind aber tw. weiße Stellen.

    Der Code zum auslesen sieht folgendermaßen aus:

    BufferedImage bimg = ImageIO.read(new File(path+name+".jpg"));
    vPixel.clear();
    for (x=1; x<breite; x++)
    {
    for (y=1; y<hoehe; y++)
    {
    int rgb = bimg.getRGB(x, y);
    Color c = new Color(rgb);

    if (c.getRed()==0 && c.getGreen()==0 && c.getBlue()==0)
    {
    pix = new Pixel();
    pix.setAll(x, y);
    vPixel.add(pix);
    }
    }
    }



  • hm, der Code sieht doch gut aus. Aber wenn du schreibst

    Ich glaube, dass der Fehler beim abspeichern liegt finde aber keinen.

    dann solltest du auch den Code zum abspeichern posten, nicht zum schwarze-Pixel-sammeln.

    kleiner verbesserungsvorschlag:

    Ersetzte doch

    if (c.getRed()==0 && c.getGreen()==0 && c.getBlue()==0)
    

    durch

    if (c.equals(Color.BLACK))
    

    😉



  • das mit dem abspeichern hab ich falsch formuliert. das abspeichern an sich funktioniert (die werte aus dem Vektor werden in die datei geschrieben) außerdem habe ich den code zum abspeichern schon in einem anderen programm benützt.

    habe den fehler aber schon gefunden. trotzdem danke



  • Wäre es nicht zweckmässiger den ganzen RGB int-Array zu holen und darüber zu loopen und zu bit'en ?

    Andere Frage: wieso speicherst Du das in ein XML-File? Nur so aus Neugier...



  • das xmlfile hab ich nur anfangs genommen, um zu sehen, was in dem file steht. sonst wäre ein xml-file nicht sehr sinnvoll 🙂


Log in to reply