Bilder proportional verkleiner

javadau2018

Mitglied
Hallo liebe Community,

ich bin blutiger Anfänger was Java angeht. Habe allerdings schon direkt eine "große" Aufgabe bekommen. Und zwar müssen Bilder automatisch proportional verkleinert werden.
Über BufferedImage kann ich wenn ich das bis jetzt richtig verstanden habe, nur int übergeben, die ich vorher definiert habe.

Aber die Verkleinerung findet so ja nicht proportional statt.

Dann habe ich versucht den GGT zu bestimmen, aber auch da bin ich nicht wirklich weiter gekommen. Ich bekomme es nicht hin die erhalten Zahlen weiter zu verarbeiten..... Und ich weiß auch gar nicht ob das der richtige Weg ist.....

Java:
public class BildGroesseAusgeben {
    public static void main(String[] args) throws IOException {   
    BufferedImage readImage = null;

        readImage = ImageIO.read(new File("C:\\Arbeit\\Esprit\\Java Bilder skalieren\\Arbeitsdateien\\Test\\088CA1O003.gif"));
        int h = readImage.getHeight();
        int w = readImage.getWidth();
        System.out.println("Height : "+ h);
        System.out.println("Width : "+ w);
                      }
}

als Ausgabe bekomme ich dann 150; 96; soweit auch richtig.

Und einen Großteil der Forenbeiträge aus dem letzten Jahrzehnt habe ich mir dazu auch schon durch gelesen.....

Hat jemand vllt. eine Idee? Den nach 3 Tage suchen, lesen und verwerfen weis ich gerade nicht mehr weiter....

Vielen Dank für eure Hilfe!
 

javadau2018

Mitglied
Die längste Seite der Bilder darf max 150px groß sein, die kurze Seite muss sich dann je nach Seitenverhältniss anpassen.
Nach meinem Verständniss momentan, müsste ich erst einmal herausfinden, welche die längste Seite ist. Diese dann auf 150 setzen. Und vorher müsste ich das Seitenverhältniss ausrechnen, damit ich dann der kurzen Seite den neue errechneten Wert übergeben kann.
Ist das so richtig? Oder habe ich da schon einen Fehler in der Logik?
 

javadau2018

Mitglied
Na, da habe ich ja schon mal was verstanden:).
Aber wie setze ich das Ganze nun um? Ich schaffe ja gerade die Ausgabe der Seiten... Geschweige den "komplizierte" if else Anweisungen.. wenn das überhaupt der richtige weg ist.
 

javadau2018

Mitglied
UIII, habe es gerade aus probiert. Das ist genau das was ich gesucht/ brauche!!! Vielen vielen Dank für die schnelle Hilfe!
Ich kriege gerade das grinsen nicht mehr aus dem Gesicht vor Freude:)
 

javadau2018

Mitglied
Nun habe ich doch noch eine Frage:
Mit einem fest definierten Bild kann javax.imageio.ImageIO.read(new java.io.File()); wohl arbeiten, aber wie schaffe ich es das er auch einen ganzen Ordner mit Bilder verarbeitet?
Ich habe ihm schon die richtige Variable übergeben aber ich bekomme immer nur diesen Fehler " Can't create an ImageInputStream!"
Sobald ich aber wieder ein festes Bild definiere was Inpout ist, ist alles i.O.

Leider konnte ich noch nicht prüfen, ob der Fehler beim write auch auf taucht, aber ich vermute mal ganz stark das er auch da einen Exception schmeißen wird.
 

javadau2018

Mitglied
Java:
 BufferedImage in = javax.imageio.ImageIO.read(new java.io.File("C:\\Java Bilder skalieren\\Arbeitsdateien\\TEST_BILDER\\ACC"));
        BufferedImage out = ImageScaler.scaleImage(in, BufferedImage.TYPE_INT_RGB, 150, 150);
        javax.imageio.ImageIO.write(out, "JPG", new java.io.File("C:\\Java Bilder skalieren\\Arbeitsdateien\\Bilder fertig resize"));
Das funktioniert so nicht.

Mache ich es aber so klappt, allerdings hat er dann ein fest definiertes Bild mit dem es arbeiten soll...
Java:
        BufferedImage in = javax.imageio.ImageIO.read(new java.io.File("C:\\Java Bilder skalieren\\Arbeitsdateien\\Bilder fertig resize\\scaled.jpg"));
        BufferedImage out = ImageScaler.scaleImage(in, BufferedImage.TYPE_INT_RGB, 150, 150);
        javax.imageio.ImageIO.write(out, "JPG", new java.io.File("C:\\Java Bilder skalieren\\Arbeitsdateien\\Bilder fertig resize\\scaledhoch.jpg"));

Der Plan ist das obere umzusetzen.
Mit meinem Lainverständniss macht eine Schleifen keinen, da er ja noch nicht mal den Ordner nimmt um damit zu arbeiten.
Ich bekomme ja direkt diese Fehlermeldung:
Exception in thread "main" javax.imageio.IIOException: Can't create an ImageInputStream!
at javax.imageio.ImageIO.read(Unknown Source)
at ImageScaler.main(ImageScaler.java:14)
 

VfL_Freak

Top Contributor
Moin,

da ja nun augenscheinlich "ACC" und "Bilder fertig resize" Verzeichnisse sind werde sie Dir wohl kein File-Objekt liefern !!
Du musst schon das jeweilige Bildverzeichnis in der Schleife durchlaufen und dann einzeln Pfad + Dateiname zusammenbasteln !!

VG Klaus
 

javadau2018

Mitglied
Guten Morgen,

ich habe diesen Code "gefunden". Nach meinem Verständniss passiert hier doch genau das was ich brauche oder nicht?
Die Daten werden in einem Array gespeichert und dann geht es weiter, aber wie bekomme ich die Daten von da weiter verarbeitet?

Java:
public static void main(String[] args) {
        String verzName = "C:\\Java Bilder skalieren\\Arbeitsdateien\\TEST_BILDER";
        String verzNameDes = "C:\\Java Bilder skalieren\\Arbeitsdateien\\Bilder fertig resize";
       
        ArrayList<File> files = getPaths(new File(verzName),
                new ArrayList<File>());
        if(files == null) return;
        try {
            System.out.println("START");
           
            for (int i = 0; i < files.size(); i++)
            {
                //System.out.println(files.get(i).getCanonicalPath());
                UmspeichernDerBilder (files.get(i), verzNameDes, getVariablePathPart(files.get(i).getCanonicalPath() ,verzName, files.get(i).getName()));
                test (files.get(i));
                System.out.println("END");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Dann habe ich noch eine Frage, auch wenn diese vllt. nicht ganz hier hingehört. Kann mir jemand einen guten Lehrgang für Java empfehlen? Ich werde zukünftig noch mehr darin arbeiten und würde es gerne von Anfang an Vernüftig lernen und nicht so bei gebastelt. Ich habe schon die https://www.javavideokurs.de/ oder auch auf Udemy scheint es auch was zu geben. Aber ich habe keine Ahnung ob es Luftschlösser sind, oder ob man da wirklich was lernt....

Vielen Dank für die Ganze Hilfe!!!
 

javadau2018

Mitglied
Ich habe es geschafft!!!!
Java:
public static void UmspeichernDerBilder(File sourceFile, String destinationPath, String variablePathPart, String verzName) throws IOException {

        VerzeichnissErstellen (destinationPath, variablePathPart);
        destinationPath = destinationPath + variablePathPart + sourceFile.getName();       
       
        // Pfad für die original Bilder, soll weiterverarbeitet werden. DAS MUSSTE HINZUGEFÜGT WERDEN
        String bildName = verzName + variablePathPart + sourceFile.getName();
       
        /*
        File targetFile = new File (destinationPath);
        resizeImage (sourceFile,targetFile,150,150,"jpg");
        */

        BufferedImage in = javax.imageio.ImageIO.read(new java.io.File(bildName));
        BufferedImage out = ImageScaler.scaleImage(in, BufferedImage.TYPE_INT_RGB, 150, 150);
        javax.imageio.ImageIO.write(out, "JPG", new java.io.File(destinationPath));
           
    }

Und in der Abfrage habe ich ihm dann nochmal den verzName übergeben und es läuft!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
G Bilder in javafx Project AWT, Swing, JavaFX & SWT 11
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
E Bilder skalieren AWT, Swing, JavaFX & SWT 4
DaCrazyJavaExpert Swing Bilder überlagern AWT, Swing, JavaFX & SWT 19
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
thet1983 JTable Bilder AWT, Swing, JavaFX & SWT 6
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
vodkaz JFrame,Bilder und Zeitverzögerung AWT, Swing, JavaFX & SWT 2
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
I SWT Bilder, bzw. ein einzelnes Bild AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
Xbody 2D-Grafik JavaFX Bilder transformieren AWT, Swing, JavaFX & SWT 2
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
K Bilder übereinanderlegen AWT, Swing, JavaFX & SWT 11
windl Querstreifen beim Bilder malen und anpassen an neue CPU AWT, Swing, JavaFX & SWT 12
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
F Bilder ineinander kopieren AWT, Swing, JavaFX & SWT 3
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
J Vergleicher zweier Bilder AWT, Swing, JavaFX & SWT 2
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
L Swing Bilder über andere Bilder laden AWT, Swing, JavaFX & SWT 3
J Bilder überlappen AWT, Swing, JavaFX & SWT 18
P Bilder werden nach Änderung nicht angezeigt AWT, Swing, JavaFX & SWT 15
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
P Swing html mit bilder drin AWT, Swing, JavaFX & SWT 12
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
E Bilder auf JFrame AWT, Swing, JavaFX & SWT 7
R Bilder über URL einfügen AWT, Swing, JavaFX & SWT 4
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
G Swing Bilder zeichnen AWT, Swing, JavaFX & SWT 28
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
U Bilder in Jar werden nicht gefunden AWT, Swing, JavaFX & SWT 5
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
A Bilder vergleichen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
E AWT Bilder und Java AWT, Swing, JavaFX & SWT 11
P Bilder einfügen AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
S Swing Kleine Bilder in Panel einfügen AWT, Swing, JavaFX & SWT 13
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
S Bilder aus der Google Book Search API auslesen AWT, Swing, JavaFX & SWT 3
J Bilder in JScrollPane zentrieren AWT, Swing, JavaFX & SWT 5
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
A SWT Bilder resizen AWT, Swing, JavaFX & SWT 9
A Swing Bilder in JFrame einfügen AWT, Swing, JavaFX & SWT 2
Cloud Einige Bilder werden nicht geladen AWT, Swing, JavaFX & SWT 11
A Java Print: Bilder werden zu groß ausgedruckt AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben