Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在netbeans中运行时裁剪映像_Java_Image_Swing_Crop - Fatal编程技术网

Java 在netbeans中运行时裁剪映像

Java 在netbeans中运行时裁剪映像,java,image,swing,crop,Java,Image,Swing,Crop,如何允许我的web用户裁剪图像,然后将其上载到数据库中(在netbeans运行时也是如此?要裁剪图像,请尝试以下操作: ImageIcon icon = new ImageIcon("java.PNG"); Image image = icon.getImage(); image = createImage(new FilteredImageSource(image.getSource(), new CropImageFilter(73, 63, 141, 131)));

如何允许我的web用户裁剪图像,然后将其上载到数据库中(在netbeans运行时也是如此?

要裁剪图像,请尝试以下操作:

ImageIcon icon = new ImageIcon("java.PNG");
Image image = icon.getImage();
image = createImage(new FilteredImageSource(image.getSource(),
            new CropImageFilter(73, 63, 141, 131)));
要存储在数据库中,请先将该图像另存为文件,然后获取类型为=BLOB[可能在不同的数据库中延迟]的列,并将该图像保存在该列中


我已尝试过此代码,其工作正常:-

      Image image;

      Insets insets;

      JLabel label = new JLabel("asd");

      public TestCls() {
        super();
        setLayout(new FlowLayout());

        ImageIcon icon = new ImageIcon(TestCls.class.getClassLoader().getResource("user_images/smile/smile.png"));
        image = icon.getImage();
        image = createImage(new FilteredImageSource(image.getSource(),
            new CropImageFilter(1, 1, 15, 15)));

        label.setIcon(new ImageIcon(image));
        add(label);
      }

      public static void main(String args[]) {
        JFrame f = new TestCls();
        f.setSize(200, 200);
        f.show();
      }

最好将图像本身保存在数据库中(因为它会占用大量内存),还是只保存数据库中的图像路径??我将图像保存在文件系统中,并保存在数据库中,只保存其路径。我创建了一个标签,它将显示一个文件选择器,其中单击d.BufferedImage image=null;JFileChooser chooser=新的JFileChooser();选择器.setAcceptableFileFilterUsed(false);int retVal=chooser.showOpenDialog(此);如果(retVal==JFileChooser.APPROVE_选项){File myFile=chooser.getSelectedFile();尝试{image=ImageIO.read(myFile);尝试{jLabel29.setIcon(new ImageIcon(image));jLabel30.setVisible(false);@Sia:它不起作用,因为您的裁剪范围可能超出图像的范围。请尝试在
新CropImageFilter(73、63、141、131)中给出较小的值。
AffineTransformOp
,已讨论过,是另一种选择。