Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, ich möchte von einer bereitsvorhanden png-Datei Kopie mit anderem namen im gleichen Ordner erstellen.
Meine png-Dateien liegen in folgender Klasse:
Java:
import java.io.File;
public class Bilder {
/*
* Bilder und Referenztypen aus der Aufgabenstellung
*/
public static File file1 = new File("xyz.png");
public static File file2 = new File("xyz-klein.png");
}
Die Bilder werden in einer anderen Klasse eingelesen, so dass ich sie mit BufferedImage weiter bearbeiten kann. In einer Klasse BildAnpassung möchte ich zunächst wissen, welches der Bilder kleiner ist. Stellt sich herraus, dass das erste Bild größer ist als das zweite, so soll von diesem Bild ein Dublikat mit neues namen, im gleichen ordner erstellt werden. Die Klasse sieht bislang so aus:
Java:
import java.awt.Image;
import java.awt.image.BufferedImage;
public class BildAnpassung {
public BufferedImage image1;
public BufferedImage image2;
public BildAnpassung(BufferedImage image1, BufferedImage image2){
this.image1 = image1;
this.image2 = image2;
}
void anpassen(){
if((image1.getWidth() * image1.getHeight()) > (image2.getWidth() * image2.getHeight())){
}
}
}
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class BildAnpassung {
public BufferedImage image1;
public BufferedImage image2;
public File file;
public BildAnpassung(BufferedImage image1, BufferedImage image2){
this.image1 = image1;
this.image2 = image2;
}
void anpassen(){
if((image1.getWidth() * image1.getHeight()) > (image2.getWidth() * image2.getHeight())){
file = image1;
}
}
public void dublikat(File file) throws IOException {
File fromFile = new File("file");
File toFile = new File("ARBEITSGRUNDLAGE.png");
FileInputStream inFile = new FileInputStream(fromFile);
FileOutputStream outFile = new FileOutputStream(toFile);
FileChannel inChannel = inFile.getChannel();
FileChannel outChannel = outFile.getChannel();
int bytesWritten = 0;
long byteCount = inChannel.size();
while (bytesWritten < byteCount) {
bytesWritten += inChannel.transferTo(bytesWritten, byteCount - bytesWritten, outChannel);
}
inFile.close();
outFile.close();
}
}
Wie kann ich denn jetzt mein BufferedImage wieder in ein File "stecken" (in der if-Abfrage) ? Das File soll im nächsten Schritt in die Methode dublikat kommen. Damit ich meine Kopie bekomme!