我的应用程序中有一个名为"另存为"的方法,它将我的应用程序的图像保存到文件中.我使用JFileChooser让用户选择他们想要的位置来保存文件.问题是除非用户明确键入文件格式,否则它将保存没有扩展名的文件.如何在"文件类型"下拉菜单中使用jpg,png等格式.
并且,如何从"文件类型"下拉菜单中获取用于保存图像文件的扩展名.
ImageIO.write(image,extension,file);
Run Code Online (Sandbox Code Playgroud) 我想查找我的文本文件中是否存在特定模式.
即时通讯使用以下类:
java.util.regex.Pattern and java.util.Scanner;
Run Code Online (Sandbox Code Playgroud)
我的示例文本行是
String Line="DBREF 1A1F A 102 190 UNP P08046 EGR1_MOUSE 308 396";
Run Code Online (Sandbox Code Playgroud)
而且,我想匹配以下类型的模式:
A 102 190
Run Code Online (Sandbox Code Playgroud)
其中,在A的位置az或AZ但是单个包机.
在102的位置任何整数和任何长度.
在190的位置任何整数和任何长度.
而且,我的模式匹配代码是:
Scanner sr=new Scanner(Line);
Pattern p = Pattern.compile("\\s+([a-zA-Z]){1}\\s+\\d{1,}\\s+\\d{1,}\\s+");
while(sr.hasNext(p))
{
System.out.println("Pattern exists");
System.out.println("Matched String : "+sr.next(p));
}
Run Code Online (Sandbox Code Playgroud)
但是,即使它存在,模式也不匹配..
我认为问题在于我的模式字符串:
\\s+([a-zA-Z]){1}\\s+\\d{1,}\\s+\\d{1,}\\s+"
Run Code Online (Sandbox Code Playgroud)
任何人,Plz帮助我应该使用什么模式字符串????
我的网络摄像头有一个扭曲的快照.作为jpeg文件,内在矩阵和失真系数: -
matrix intrisic matrix
(1137.0919189453125,0.0,383.99273681640625)
(0.0,264.17974853515625,312.74951171875)
(0.0,0.0,1.0)
matrix distortion :-
(-0.26913660764694214)
(0.22259517014026642)
(-0.0928017795085907)
(0.26249778270721436)
Run Code Online (Sandbox Code Playgroud)
我不知道如何在CvMat中加载这些失真系数,以便使用这些失真系数获得无失真的图像.另外,我想只使用javacv这样做.
编辑: - 我也知道这个功能
IplImage mapx=cvCreateImage(cvSize(src_img),IPL_DEPTH_32F,1);
IplImage mapy=cvCreateImage(cvSize(src_img),IPL_DEPTH_32F,1);
cvInitUndistortMap(CvMat intrinsic,CvMat distortion, IplImage mapx, IplImage mapy);
cvRemap(IplImage tm,IplImage src,IplImage mapx,IplImage mapy,CV_INTER_LINEAR|CV_WARP_FILL_OUTLIERS,cvScalarAll(0));
Run Code Online (Sandbox Code Playgroud)
但我不知道如何初始化相应的cvMats的内在矩阵和失真系数.
我在titleBar中创建了一个带有四个按钮的JFrame.
JFrame frame=new JFrame("custom JFrame with 4 buttons in title");
frame.setUndecorated(true);
JPanel button_panel=new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton button_1=new JButton("+");
JButton button_2=new JButton("?");
JButton button_3=new JButton("-");
JButton button_4=new JButton("system tray");
button_panel.add(button_1);
button_panel.add(button_2);
button_panel.add(button_3);
button_panel.add(button_4);
frame.getContentPane().add(button_panel,BorderLayout.NORTH);
Run Code Online (Sandbox Code Playgroud)
现在,我的标题栏中有一个带有四个按钮的JFrame.
但是,如何为这个自定义JFrame提供拖动功能?
我有一个JInternalFrame,它绘有BufferedImage并包含在JFrame的JDesktopPane中.我还有一个JTextArea,我想编写一些java代码(函数),它将当前JInternalFrame的绘制BufferedImage作为输入,在对此输入进行一些操作后,它返回另一个操作的BufferedImage,它再次使用新的操作Image绘制JInternalFrame.
操纵JTextArea的java代码: -
public BufferedImage customOperation(BufferedImage CurrentInputImg)
{
Color colOld;
Color colNew;
BufferedImage manipulated=new BufferedImage(CurrentInputImg.getWidth(),CurrentInputImg.getHeight(),BufferedImage.TYPE_INT_ARGB);
// make all Red pixels of current image black
for(int i=0;i< CurrentInputImg.getWidth();i++) {
for(int j=0;j< CurrentInputImg.getHeight(),j++) {
colOld=new Color(CurrentInputImg.getRGB(i,j));
colNew=new Color(0,colOld.getGreen(),colOld.getBlue(),colOld.getAlpha());
manipulated.setRGB(i,j,colNew.getRGB());
}
}
return manipulated;
}
Run Code Online (Sandbox Code Playgroud)
如何在运行时运行/编译此JTextArea Java代码并获取一个新的操作图像以便在JInternalFrame上绘制?
(这个类不是实际的,但是我为你创建了它,用于包含JTextArea,JInternalFrame,Apply Button的基本接口)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
import java.io.File;
import java.util.*;
class MyCustomOperationSystem extends JFrame
{
public JInternalFrame ImageFrame;
public BufferedImage …Run Code Online (Sandbox Code Playgroud) java ×5
swing ×2
compilation ×1
drag ×1
filefilter ×1
javacv ×1
jfilechooser ×1
jframe ×1
opencv ×1
regex ×1
runtime ×1