package com.zte.csp.oam.kvm;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImagePane extends JPanel {
static ImagePane imagep;
BufferedImage bufferedImg;
Image image;
static double scaleX = 1.1, scaleY = 1.0;
public ImagePane() {
try {
image = ImageIO.read(new File("C:\\mouse1.png"));
bufferedImg = new BufferedImage(128, 128, BufferedImage.TYPE_INT_ARGB);
bufferedImg.getGraphics().drawImage(image, 0, 0, 128, 128, null);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private void viewviewer(Graphics g, BufferedImage bufferedImg) {
super.paintComponent(g);
Graphics2D localGraphics2D = (Graphics2D) g;
localGraphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
localGraphics2D.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED);
localGraphics2D.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);
localGraphics2D.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
localGraphics2D.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED);
localGraphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
localGraphics2D.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
localGraphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
AffineTransform localAffineTransform = null;
Dimension localDimension1 = Toolkit.getDefaultToolkit().getScreenSize();
//System.out.println("scaleX:"+scaleX+" scaleY:"+scaleY);
localAffineTransform = AffineTransform.getScaleInstance(scaleX, scaleY);
localGraphics2D.drawImage(bufferedImg, localAffineTransform, this);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
viewviewer(g, bufferedImg);
//g.drawImage(image, 0, 0, this);
}
private static void sliderVgaScaleStateChanged(javax.swing.event.ChangeEvent evt) {
// TODO add your handling code here:
scaleX = ((javax.swing.JSlider) evt.getSource()).getValue() / 100.0;
scaleY = ((javax.swing.JSlider) evt.getSource()).getValue() / 100.0;
imagep.repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame();
javax.swing.JSlider sliderVgaScale = new javax.swing.JSlider();
sliderVgaScale.setMaximum(200);
sliderVgaScale.setValue(100);
sliderVgaScale.setMaximumSize(new java.awt.Dimension(200, 25));
sliderVgaScale.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
sliderVgaScaleStateChanged(evt);
}
});
frame.getContentPane().add(sliderVgaScale, BorderLayout.NORTH);
imagep = new ImagePane();
frame.getContentPane().add(imagep);
frame.setSize(800, 600);
frame.setVisible(true);
}
}