Java 调整图像大小
Java resize an image
我想在我的 Jframe 中的某个区域显示图像,但图像占用了很多 space。
我想把它的尺寸精确化。
我如何在 Java
中执行此操作
这是我的简单代码:
如果我没有使用正确的方法或正确的 class 实例化图像,我愿意接受任何建议。
import java.awt.*;
import javax.swing.*;
public class ExempleDeplace extends JFrame{
private JLabel myLabel;
public ExempleDeplace(){
setLayout(new FlowLayout());
setTitle("Fenetre, modele Duchi");
setSize(500,700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel j = new JLabel(new ImageIcon("src/images/bateau.png"));
add(j);
setVisible(true);
}
public static void main (String[] args) {
ExempleDeplace c = new ExempleDeplace();
}
}
您可以将 JPanel 中的图像绘制为整个面板。然后,无论何时调整面板大小时,图像都会随之调整大小。这是一个快速 n-dirty 可运行演示:
import java.awt.BorderLayout;
import java.awt.Graphics;
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 ImgFrame extends JFrame {
private static BufferedImage IMG;
static{
try {
IMG = ImageIO.read(new File("img/Original_Doge_meme.jpg")); //Replace with your image path
} catch (IOException e) {
e.printStackTrace();
}
}
public ImgFrame(){
add(new ImgPanel(), BorderLayout.CENTER);
setSize(500,700);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
class ImgPanel extends JPanel{
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(IMG, 0, 0, getWidth(), getHeight(), this);
}
}
public static void main(String[] args){
new ImgFrame();
}
}
调整图像大小可能更干净。我强烈推荐 filthyrichclients 提供的图像大小调整实用方法。
我实际上也强烈推荐 book,因为它是为数不多的真正展示 Swing 强大功能的书籍之一...
获得代码后,您将要调用
createCompatibleImage(myImage, myWidth,myHeight);
我想在我的 Jframe 中的某个区域显示图像,但图像占用了很多 space。
我想把它的尺寸精确化。 我如何在 Java
中执行此操作这是我的简单代码:
如果我没有使用正确的方法或正确的 class 实例化图像,我愿意接受任何建议。
import java.awt.*;
import javax.swing.*;
public class ExempleDeplace extends JFrame{
private JLabel myLabel;
public ExempleDeplace(){
setLayout(new FlowLayout());
setTitle("Fenetre, modele Duchi");
setSize(500,700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel j = new JLabel(new ImageIcon("src/images/bateau.png"));
add(j);
setVisible(true);
}
public static void main (String[] args) {
ExempleDeplace c = new ExempleDeplace();
}
}
您可以将 JPanel 中的图像绘制为整个面板。然后,无论何时调整面板大小时,图像都会随之调整大小。这是一个快速 n-dirty 可运行演示:
import java.awt.BorderLayout;
import java.awt.Graphics;
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 ImgFrame extends JFrame {
private static BufferedImage IMG;
static{
try {
IMG = ImageIO.read(new File("img/Original_Doge_meme.jpg")); //Replace with your image path
} catch (IOException e) {
e.printStackTrace();
}
}
public ImgFrame(){
add(new ImgPanel(), BorderLayout.CENTER);
setSize(500,700);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
class ImgPanel extends JPanel{
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(IMG, 0, 0, getWidth(), getHeight(), this);
}
}
public static void main(String[] args){
new ImgFrame();
}
}
调整图像大小可能更干净。我强烈推荐 filthyrichclients 提供的图像大小调整实用方法。
我实际上也强烈推荐 book,因为它是为数不多的真正展示 Swing 强大功能的书籍之一...
获得代码后,您将要调用
createCompatibleImage(myImage, myWidth,myHeight);