Ich würde gerne in den Untenstehenden Code einen JFileChooser einbinden, mit welchem man auswählen kann, wo das Bild abegespeichert wird.
Java:
class ACL3 implementsMouseListener{@OverridepublicvoidmouseClicked(MouseEvent arg0){// TODO Auto-generated method stubString username = jTextField1.getText();Image img =null;// MediaTracker zum Warten, bis das Bild fertig erstellt istMediaTracker mt =newMediaTracker(newJPanel());while(true){try{TimeUnit.SECONDS.sleep(5);}catch(InterruptedException e){
e.printStackTrace();}try{
img =Toolkit.getDefaultToolkit().createImage(newURL("Die URL des Bildes"));// Darauf warten, dass das Bild fertig erstellt wird, bevor man// es für die weitere Verarbeitung benutzt
mt.addImage(img,0);
mt.waitForAll();}catch(MalformedURLException e){
e.printStackTrace();}catch(InterruptedException e){
e.printStackTrace();}if(img ==null){continue;}BufferedImage bimg =newBufferedImage(img.getWidth(null),
img.getHeight(null),BufferedImage.TYPE_INT_RGB);
bimg.getGraphics().drawImage(img,0,0,null);try{ImageIO.write(bimg,"jpg",newFile("/home/link/bild.jpg"));}catch(IOException e){
e.printStackTrace();}// Bild wieder aus dem MediaTracker entfernen
mt.removeImage(img);}}
[java=37] File file = new File("/home/link/bild.jpg");
JFileChooser jfc = new JFileChooser("speichern unter");
int returnVal = jfc.showSaveDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = jfc.getSelectedFile();
}
try {
ImageIO.write(bimg, "jpg", file);
} catch (IOException e) {
e.printStackTrace();
}[/code]
wobei du nun noch die Dateiendung etwas ändern solltest. Die Datei wird entsprechend der Usereingabe abgespeichert, entweder ohne Dateiendung, oder mit was auch immer der user eingegeben hat.
[java=37] File file = new File("/home/link/bild.jpg");
JFileChooser jfc = new JFileChooser("speichern unter");
int returnVal = jfc.showSaveDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = jfc.getSelectedFile();
}
try {
ImageIO.write(bimg, "jpg", file);
} catch (IOException e) {
e.printStackTrace();
}[/code]
wobei du nun noch die Dateiendung etwas ändern solltest. Die Datei wird entsprechend der Usereingabe abgespeichert, entweder ohne Dateiendung, oder mit was auch immer der user eingegeben hat.
Das File Objekt repräsentiert die Datei in die gespeichert werden soll. Das war doch die Absicht ein Bild aus einer URL zu lesen und in eine Datei zu speichern?
Das File Objekt repräsentiert die Datei in die gespeichert werden soll. Das war doch die Absicht ein Bild aus einer URL zu lesen und in eine Datei zu speichern?
Benutze ImageIO eigentlich nicht. Falls die write Methode nicht eine neue Datei anlegt, muss du das selbst machen die Klasse File besitzt dazu eine Methode create... (oder so)
Benutze ImageIO eigentlich nicht. Falls die write Methode nicht eine neue Datei anlegt, muss du das selbst machen die Klasse File besitzt dazu eine Methode create... (oder so)
Du überprüfst, ob der Name des vom JFileChooser erhaltene File-Objekts mit .png endet. Falls nicht erstellts Du ein neues File Objekt, welches sich aus dem Pfad des alten +".png" zusammen setzen.
Wobei die Überprüfung nicht unbedingt sein muss, man könnte pauschal ein neues File Objekt mit der Endung erzeugen. Im schlimmesten Fall heisst die Datei dann meinBild.png.png