JPG in größe ändern und speichern

Status
Nicht offen für weitere Antworten.

uhlealex

Neues Mitglied
Hallo zusammen, ich hab folgendes Problem,
ich hab mir eine Methode zum ändern der Größe von Bildern geschrieben, jedoch ist das Bild nach dem ich es gespeichert hab leer oder nur schwarz, wenn ich es mit InfraView öffne. Es werden keine Compiler fehler oder anderes ausgegeben.

Hier mein Source:

Code:
    public boolean Resize(String imgSrc)
    {
        BufferedImage buf1 = null;
        try
        {
          buf1 = ImageIO.read(new File(imgSrc));
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        int width=300, height=300;
        
        Image image = ((Image)buf1).getScaledInstance(width,height,Image.SCALE_FAST);
        
        BufferedImage buf2 = new BufferedImage ( width, height, BufferedImage.TYPE_INT_RGB);
        buf2.createGraphics().drawImage( image, 0 ,0, this);
        
        try
        {
           ImageIO.write(buf2, "jpg", new File(imgSrc));
        }
        catch (IOException ie)
        {
            System.err.println("! IOException:"+ ie.getMessage());
        }
        return false;
    }

Wo liegt das Problem ???

Danke
 

MPW

Top Contributor
kp, aber lass dir doch mal das Bild in einem Java-Fenster anzeigen, wenn's dort richtig ist, weißt du, das es am speichern liegt...

Ich glaube nicht, das der Fehler innerhalb des geposteten Codes liegt, sondern beim speichern oder so....du solltest z.B. vermeiden, die gleiche Datei zu überschreiben, das gibt immer Probleme in Java.


[offtopic]
Und notfalls nimmst du die Resizefunktion von Irfanview;-)
[/offtopic]
 

Grizzly

Top Contributor
So, habe mal den Code etwas formatiert und ein paar Änderungen vorgenommen:
Code:
package test;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageResize {

	public static void main(String[] args) {
		boolean result;
		String path = "C:\\Dokumente und Einstellungen\\grizzly\\Desktop\\";
		
		result = resize(path + "test1.jpg", path + "test2.jpg");
		System.out.println(result);
	}
	
	public static boolean resize(final String srcFile, final String destFile) {
		BufferedImage srcImage, destImage;
		Image image;
		int width = 300;
		int height=300;
		Graphics g;
		
		// Grafik laden.
		try {
			srcImage = ImageIO.read(new File(srcFile));
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
		// Grafik skalieren.
		image = srcImage.getScaledInstance(width, height, Image.SCALE_FAST);
		// Grafik zeichen.
		destImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		g = destImage.createGraphics();
		g.drawImage(image, 0, 0, null);
		g.dispose();
		// Grafik speichern.
		try {
			ImageIO.write(destImage, "jpg", new File(destFile));
		} catch (IOException ie) {
			ie.printStackTrace();
		}
		return true;
	}
}
Ich speichere das neue Bild in eine andere Datei. Weiter gebe ich den Grafikkontext mit g.dispose() wieder frei. Den Rest habe ich gleich gelassen. Und es funktioniert wunderbar. :)
 

MPW

Top Contributor
schön!

Wenn du jetzt noch das alte Bild irgendwie vorher löschst, kannst du wahrscheinlich auch das alte gleich überspeichern! bzw. neu anlegen dann...

Dann kannst du noch die args[] auswerten und fertig hast du ein universelles Resizetool!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Unicode Font Größe ändern Spiele- und Multimedia-Programmierung 2
E Isometrische Tiles mit unterschiedlicher Größe an korrekter Position zeichnen Spiele- und Multimedia-Programmierung 1
C 2D Sprites an die JPanel Größe (Auflösung) anpassen/skalieren Spiele- und Multimedia-Programmierung 3
Developer_X Bild Größe einstellen Spiele- und Multimedia-Programmierung 2
M Einfaches Legespiel: Größe des Spielfeld reduzieren Spiele- und Multimedia-Programmierung 19
M Minecraft Minecraft 1.12.2 Plotrand ändern Spiele- und Multimedia-Programmierung 1
I Minecraft: Craftingrecipe für Braustand ändern Spiele- und Multimedia-Programmierung 9
K FIguranimation bei Laufrichtungen ändern?! Spiele- und Multimedia-Programmierung 12
M Wie kann man die Auflösung eine fertigen Programms ändern? Spiele- und Multimedia-Programmierung 1
T Bilder einbinden, bzw. ändern Spiele- und Multimedia-Programmierung 5
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
F Bewegungsrichtung ändern Spiele- und Multimedia-Programmierung 4
R Problem bei Farbe ändern/4Gewinnt Spiele- und Multimedia-Programmierung 5
B Bilder in GUI ändern ohne repaint() Spiele- und Multimedia-Programmierung 6
P Prozess Lautstärke ändern Spiele- und Multimedia-Programmierung 4
H BranchGroup ändern Spiele- und Multimedia-Programmierung 4
U Value in Programm ändern? Spiele- und Multimedia-Programmierung 5
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
M Variable die eine Klasse enthält ändern Problem Spiele- und Multimedia-Programmierung 16
truesoul Picking und Farbe ändern Spiele- und Multimedia-Programmierung 3
R Nachträgliches ändern von Vertex Arrays. Wie geht das? Spiele- und Multimedia-Programmierung 3
F Farbe ändern bei Überlappung Spiele- und Multimedia-Programmierung 2
U Canvas Ursprung ändern Spiele- und Multimedia-Programmierung 11
E Durch Klick auf den JButton will ich die Farbe ändern? Spiele- und Multimedia-Programmierung 8
DEvent [2D] Farbe bestimmten Pixels eines Bildes ändern Spiele- und Multimedia-Programmierung 3
S Dimensionen/Maßstab des J3D universe ändern Spiele- und Multimedia-Programmierung 8
N Bild im Panel ändern Spiele- und Multimedia-Programmierung 3
C Text in/auf Text2D ändern Spiele- und Multimedia-Programmierung 4
I Kameraposition in Java3d ändern Spiele- und Multimedia-Programmierung 13
C Speichern von Daten mit Mysql Spiele- und Multimedia-Programmierung 4
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
M Bilder effizient speichern/serialisieren Spiele- und Multimedia-Programmierung 10
Devil0s 2D Stadt Generator/2D Welt speichern OHNE Tiles Spiele- und Multimedia-Programmierung 5
N [SLICK] Rectangle in Array Speichern Spiele- und Multimedia-Programmierung 3
M MJPEG Stream aufnehmen (Speichern und von VirtualDub weiterverarbeiten lassen). Spiele- und Multimedia-Programmierung 2
A Speichern un Laden mit Serializable Spiele- und Multimedia-Programmierung 4
B Daten speichern: Reflexion vs Serializable Spiele- und Multimedia-Programmierung 8
A PNG pixelweise/blockweise speichern? Spiele- und Multimedia-Programmierung 2
F Programm für Bildbearbeitung gesucht: Skalieren und Speichern Spiele- und Multimedia-Programmierung 6
Y Jede Aktion sofort speichern Spiele- und Multimedia-Programmierung 5
aze Java 3D : 3D Objekte speichern und später wieder einlesen Spiele- und Multimedia-Programmierung 9
H Speichern und Öffnen von einem Zeichenprogramm Spiele- und Multimedia-Programmierung 4
S benutzerdefiniertes Tileset in Datei speichern Spiele- und Multimedia-Programmierung 3
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
M Jpanel Graphik speichern Spiele- und Multimedia-Programmierung 6
A Bilder(BMP) speichern Spiele- und Multimedia-Programmierung 2
H Jpeg Bildinformation in ein Char Array speichern? Spiele- und Multimedia-Programmierung 4
G highscore in *.dat speichern! Spiele- und Multimedia-Programmierung 8
H Bilder speichern 2 - Methode richten? Spiele- und Multimedia-Programmierung 2
H Bilder speichern Spiele- und Multimedia-Programmierung 3
S Inhalt von Canvas3D als jpg - File speichern Spiele- und Multimedia-Programmierung 2
K Java2d Bild als JPG oder so speichern Spiele- und Multimedia-Programmierung 10

Ähnliche Java Themen

Neue Themen


Oben