TEL:400-8793-956
当前位置:程序、服务器

如何调整附件图像的大小并查看(可以看到原始大小)?

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-18 13:04:16

 问:下面是Netbeans中Jframe的Java代码。它是关于要显示到Jframe的附件或图像的代码。我希望在这里有人可以帮助我

 
1.如何调整已经附加并显示到Jframe的图像的大小(标准化我上传的大小)?
 
2.如何查看调整大小的图像并查看图像的大尺寸或原始尺寸?
 
3.如何将图像或文件附件保存在JFrame中,以便在我关闭运行窗口后仍将文件或图像保留在其中,并且可以根据需要将其删除?
 
谢谢。我感谢您的帮助。尽快。
 
****************************************************** ****************************************************** ***************
 
private void jButton_attachimageActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        // TODO add your handling code here:
        
        JFileChooser chooser=new JFileChooser();
        chooser.showOpenDialog(null);
        File f=chooser.getSelectedFile();
        String filename=f.getAbsolutePath();
        jTextField_path.setText(filename);
        ImageIcon icon=new ImageIcon(filename);
        jLabel_image.setIcon(icon);
    }          
 
 
答:您可以使用以下代码来调整大小和上传。
 
导入java.awt.Graphics2D;
导入java.awt.Image;
导入java.awt.Toolkit;
导入java.awt.image.BufferedImage;
导入java.awt.image.DataBufferByte;
导入java.awt.image.WritableRaster;
导入java.io.File;
 
导入javax.swing.ImageIcon;
 
公共类ImageUpload1 {
 
    私有静态最终int IMG_ WIDTH = 120;
    私有静态最终int IMG_ HEIGHT = 120;
 
    ImageIcon照片;
    WritableRaster栅格;
    DataBufferByte数据;
    文件图像;
 
                         
 
     void reSize(){                                         
         尝试{
               image = new File(“ image path”);
                BufferedImage originalImage = ImageIO.read(image);
                int type = originalImage.getType()== 0吗?BufferedImage.TYPE_ INT_ ARGB:originalImage.getType();
 
                BufferedImage resizeImageJpg = resizeImage(originalImage,type);
                照片=新ImageIcon(toImage(resizeImageJpg));
 
                //将缓冲的图像转换为字节数组
                光栅= resizeImageJpg.getRaster();
                数据=(DataBufferByte)raster.getDataBuffer();
               保存();
            } catch(IOException e){
                System.out.println(e.getMessage());
            }
          
    }                                        
    公共图像toImage(BufferedImage bufferedImage){
        返回Toolkit.getDefaultToolkit()。createImage(bufferedImage.getSource());
    }
    无效Save(){                                        
        //使用Connection接口声明连接 
        连接connection = null;
        //用机器以指定格式创建连接URL的字符串 
        //名称,端口号和数据库名称。 
 
        字符串连接URL =“ jdbc:mysql:// localhost:3306 / dbname”;
 
        //声明一个resultSet,该表作为通过执行指定操作而生成的表 
        // sql查询。
        ResultSet rs = null;
 
        //声明语句。
        PreparedStatement psmnt = null;
 
        尝试{
 
            //加载JDBC驱动程序“ com.mysql.jdbc.Driver”
            Class.forName(“ com.mysql.jdbc.Driver”)。newInstance();
 
            //通过使用getConnection()方法创建连接 
           //字符串类型的连接URL,用户名和密码的参数 
            //连接到数据库。 
            connection = DriverManager.getConnection(connectionURL,“ root”,“ dbpass”);
            // prepareStatement()用于创建语句对象 
            //用于将sql语句发送到指定的数据库。 
            psmnt = connection.prepareStatement(“插入到save_图像(名称,城市,图像,电话)中”
                    +“ values(?)”);
           
            byte [] extractBytes = data.getData();
            psmnt.setBytes(1,extractBytes);
            // executeUpdate()方法执行指定的sql查询。这里这个查询
            //从指定地址插入数据和图像。 
            int s = psmnt.executeUpdate();
            如果(s> 0){
                System.out.println(“上传成功!”); 
             
            }其他{
                System.out.println(“上传图片失败。”);
            }
            connection.close();
            psmnt.close();
        } //在朗姆酒期间捕获是否发现任何异常。
        catch(ex例外){
            System.out.println(“发现一些错误:” + ex);
        }
    }                                       
 
   public BufferedImage resizeImage(BufferedImage originalImage,int type){
        BufferedImage resizeImage = new BufferedImage(IMG_ WIDTH,IMG_ HEIGHT,类型);
        Graphics2D g = resizedImage.createGraphics();
        g.drawImage(originalImage,0,0,IMG_ WIDTH,IMG_ HEIGHT,null);
        g.dispose();
 
        返回resizedImage;
    }
 
    / **
     * @param args命令行参数
     * /
    公共静态void main(String args []){
     新的ImageUpload1()。reSize();
    }
       
}
 
上一篇: 是否有人在其应用中使用了Google Song Recognition?
下一篇: 需要帮助翻页效果