Java - Aumentar o disminuir tamaño de imagen con slider

 
Vista:
sin imagen de perfil

Aumentar o disminuir tamaño de imagen con slider

Publicado por María (4 intervenciones) el 11/09/2015 06:17:01
Hola, buenas noches!

Estoy desarrollando un diseñador en donde se trabaja principalmente con imágenes, quisiera saber si es posible aumentar o disminuir el tamaño de una imagen conservando sus propiedades (que la imagen no se distorsione) con el uso de un slider, pero no logro avanzar, no encuentro la forma de asociar el slider con la imagen para que cuando se cambie al valor del slider la imagen cambie su tamaño. Si saben como podría resolverlo se los agradecería y si saben de otra técnica de igual manera se los agradecería (:
Gracias!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Aumentar o disminuir tamaño de imagen con slider

Publicado por Tom (1831 intervenciones) el 19/09/2015 11:32:02
Feo, pero funciona:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class ShowImage extends JPanel {
	BufferedImage image;
	/* */
	ShowImage(BufferedImage img) {
		super();
		this.image = img;
		setLayout(new BorderLayout(2, 2));
		final JSlider jsl = new JSlider(JSlider.HORIZONTAL, 50, 100, 100);
		jsl.setMajorTickSpacing(10);
		jsl.setMinorTickSpacing(5);
		jsl.setPaintTicks(true);
		jsl.setPaintLabels(true);
		add(jsl, BorderLayout.NORTH);
		final JComponent imgview = new JComponent() {
			/* */
			@Override
			public Dimension getPreferredSize() {
				return new Dimension(image.getWidth(), image.getHeight());
			}
			/* */
			@Override
			public void paintComponent(Graphics g) {
				int scale = jsl.getValue();
				int nw = image.getWidth() * scale / 100;
				int nh = image.getHeight() * scale / 100;
				int origx = (image.getWidth() - nw) / 2;
				int origy = (image.getHeight() - nh) / 2;
 
				g.drawImage(image, origx, origy, nw, nh, null);
			}
		};
		add(imgview, BorderLayout.CENTER);
		jsl.addChangeListener(new ChangeListener() {
			@Override
			public void stateChanged(ChangeEvent e) {
				if(!jsl.getValueIsAdjusting()) {
					imgview.repaint();
				}
			}
		});
	}
	/* */
	public static void main(String args[]) throws IOException {
		File ImageFile = new File("/tmp/Shelby_GT500KR_at_NYIAS.jpg");
		BufferedImage bimg = ImageIO.read(ImageFile);
		JFrame fr = new JFrame("Image test");
		fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fr.setContentPane(new ShowImage(bimg));
		fr.pack();
		fr.setVisible(true);
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Aumentar o disminuir tamaño de imagen con slider

Publicado por María (4 intervenciones) el 05/10/2015 05:19:11
Gracias por sus comentarios!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar