Hilfe bei einer Shrink Funktion

Status
Nicht offen für weitere Antworten.
K

klesh

Gast
Hallo zusammen,

Ich habe eine Frage betreffend einer Shrink Funktion, bei der es möglich sein soll via. Eingabe in einem Applet das Bild zu verkleinern. Momentan gebe ich das verkleinerte Bild in den Ordner c:/test aus, in welchem auch das Original liegt.
Meine Funktion sieht bisher so aus:

Code:
import java.awt.*;
import java.applet.*;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;

public class Beispiel_Bilder_3 extends Applet
{

    public static void main(String[] args)
    {
   	Beispiel_Bilder_3 g = new Beispiel_Bilder_3();
   	
   	File f = new File("c:/test");
		File[] files = f.listFiles();
		for (int i = 0; i < files.length; i++) {
			File file = files[i];
			if (!file.isDirectory() && file.getName().endsWith(".jpg")) {
				try {
					BufferedImage img = ImageIO.read(file);

					AffineTransform transform = AffineTransform
							.getScaleInstance(0.2, 0.2); // Bild wird skaliert, in diesem Fall ein Fünftel (Wert=0.2)
					AffineTransformOp op = new AffineTransformOp(transform,
							null);
					
					BufferedImage scaledImage = op.filter(img, null);

					ImageIO.write(scaledImage, "jpeg", new File(file
							.getAbsolutePath()
							+ "verkleinert_" + file.getName()));

				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
 }

Meine Frage dazu wäre nun, wo resp. wie kann ich ein Applet hinzufügen, in welchem man mit einem "Schiebregler" o. Ä. den gewünschten Prozentsatz bzgl. der originalen Bildgrösse angeben kann?
Ich habe bisher nur Gutes von Ihrem Forum gehört, daher frage ich am besten einmal hier nach.

Freundliche Grüsse
 

Templon

Bekanntes Mitglied
Du könntest eine JSlider (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JSlider.html) nehmen. Dieser gibt dir werte zwischen 0 und 100 mit der getValue() (vllt musst du 0 und 100 auch mit setMinumum und setMaximum setzen, bin mir nicht mehr sicher was der default ist) Methode zurück.

Das könnte dann so aussehen mit dem AffineTransform:
Code:
  AffineTransform transform = AffineTransform 
                     .getScaleInstance(mySlider.getValue() / 100, mySlider.getValue() / 100);

Wie du ein Applet erstellst findest du bestimmt irgendwo im Internet =)

Gruss Templon
 
K

klesh

Gast
Vielen Dank für deine rasche Antwort!
Werde es einmal ausprobieren.
 
K

klesh

Gast
Also, ich habe mir das Ganze einmal angeschaut und musste feststellen, dass ich keinen Plan habe wie bzw. wo ich den Slider "einbauen" muss. Die Geschichte mit dem Applet habe ich nach einem Ratschlag nicht mehr weiterverfolgt, sondern versuche es nun mit einer Swing-Application, allerdings komme ich auch da nicht wirklich zum Ziel...
Evtl. kann mir ja nochmals jemand "ein wenig unter die Ame greifen"!

Bin froh um jede Hilfe!
 

Templon

Bekanntes Mitglied
Code:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

// JFrame
public class TestSwing extends JFrame {
	
	// Konstruktor
	public TestSwing() {
		setTitle("Test");
		setSize(800,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// Mit add werden neue Components hinzugefügt
		add(new JLabel("Hallo"));
	}
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				TestSwing w = new TestSwing();
				w.setVisible(true);
			}
		});
	}
}

Hier hast du ein kleines Beispiel von einer Swing GUI Applikation.
Ich würde dir empfehlen, mal im Internet nach Swing Tutorial zu suchen, findest bestimmt eine Menge Beispiele.
 
K

klesh

Gast
Vielen Dank für dein Beispiel!
Dann werd ich mich mal auf die Suche machen...
 
K

klesh

Gast
Code:
package Shrink_Images;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import Shrink_Images.Shrink_Images;

public class Shrink_Images
{

	private JFrame jFrame = null;

	private JPanel main = null;

	private JSlider slider = null;
	
	private JButton button = null;
	
	private JTextField field = null;
	
	private JFrame getJFrame()
	{
		if (jFrame == null)
		{
			jFrame = new JFrame();
			jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			jFrame.setSize(400, 200);
			jFrame.setResizable(false);
			jFrame.setTitle("Resize your Images");
			jFrame.getContentPane().add(getBody());
		}
		return jFrame;
	}

	public JPanel getBody()
	{
		main = new JPanel();
		slider = new JSlider();
		slider.setMinimum(1);
		slider.setMaximum(99);
		slider.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e)
			{
				changeAction();	
			}
        });
		field = new JTextField();
		field.setColumns(3);
		field.setText(slider.getValue() + " %");
		main.add(field);
		main.add(slider);
		button = new JButton();
		button.setText("Resize");
		button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                shrinkAction();
            }
        });
		main.add(button);
		return main;
	}
	
	public void shrinkAction() {

		 double value = (double)slider.getValue()/100;


		File f = new File("c:\\test");
		File[] files = f.listFiles();
		for (int i = 0; i < files.length; i++) {
		File file = files[i];

		if (!file.isDirectory() && file.getName().toLowerCase().endsWith(".jpg")) {
		try {

		BufferedImage img = ImageIO.read(file);

		AffineTransform transform = AffineTransform
		.getScaleInstance(value, value);

		AffineTransformOp op = new AffineTransformOp(transform,
		null);

		BufferedImage scaledImage = op.filter(img, null);

		ImageIO.write(scaledImage, "jpeg", new File(file
		.getAbsolutePath()
		+ "verkleinert_" + file.getName()));

				} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}


	System.out.println(value); 

}

	
	public void changeAction() {
		field.setText(slider.getValue() + " %");
		
	}

	public static void main(String[] args)
	{
		SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
			{
				Shrink_Images application = new Shrink_Images();
				application.getJFrame().setVisible(true);
			}
		});
	}

}

Zur Vollständigkeit noch die Lösung! (Nach grosser Mithilfe eines Kollegen!)

Eine Frage hätte ich trotzdem noch:

Kann man den Slider auch mit "absoluten" Werten versehen, d.h. dass man das Bild anstatt von 100% zu 50% auf 1024x768 zu 512x384 verkleinert?

Blicke bei all dem noch nicht ganz durch, daher wäre ich um jeden Tipp dankbar...
 
K

klesh

Gast
Leider hat mir der Artikel nicht wirklich viel gebracht.
Bin einfach noch nicht wirklich sattelfest...

Wie bereits gesagt, bin froh um jeden Ratschlag!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
E Erste Schritte brauche hilfe zum verstehen einer Klasse(Tiefensuche) Java Basics - Anfänger-Themen 17
S Hilfe bei Fehlerfindung einer rekursiven Methode Java Basics - Anfänger-Themen 2
A Vererbung Hilfe bei einer Aufgabenstellung Java Basics - Anfänger-Themen 3
G Hilfe bei einer NPE Java Basics - Anfänger-Themen 9
P Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 9
C Erste Schritte Benötige Hilfe mit einer Stoppuhr Java Basics - Anfänger-Themen 20
S Klassen Brauche Hilfe bei Erstellung einer Klasse für einen Tachenrechner!!! Java Basics - Anfänger-Themen 6
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
J HILFE Benutzen einer Klasse aus JRE System Library Java Basics - Anfänger-Themen 4
E Hilfe bei einer Methode Java Basics - Anfänger-Themen 4
H Hilfe bei einer add.methode Java Basics - Anfänger-Themen 6
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
S Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 19
2 kapitalwertberechnung mit hilfe einer methode Java Basics - Anfänger-Themen 8
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
A Brauche Hilfe mit einer Forschleife Java Basics - Anfänger-Themen 20
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
N Bitte um Hilfe - zyklisch Existenz einer Datei prüfen Java Basics - Anfänger-Themen 21
P Zeilnumbruch vermeiden bei einer Tabelle *hilfe* Java Basics - Anfänger-Themen 11
F Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 2
N Hilfe zur Erstellung einer Internet-Plattform Java Basics - Anfänger-Themen 5
H Hilfe bei Ausgabe in einer Datei. Java Basics - Anfänger-Themen 5
R Hilfe! Daten aus einer excelliste auslesen und. Java Basics - Anfänger-Themen 3
K Bräuchte dringend Hilfe bei einer Schulaufgabe Java Basics - Anfänger-Themen 2
G Hilfe zur einer Aufgabe: Datumsüberprüfung beim Gregorianis Java Basics - Anfänger-Themen 2
G [Hilfe] Keys aus einer Map auslesen? Wie? Java Basics - Anfänger-Themen 3
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben