参考IntelliJ Idea+javafx+第三方库+dll 打包为jar
代码
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.videoio.VideoCapture;
import org.opencv.videoio.Videoio;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class Main {
private static String rtsp_62 = "rtsp://admin:密码@192.168.0.62:554/stream0";
private static String rtsp_64 = "rtsp://admin:密码@192.168.0.64:554/stream0";
private static String rtsp_93 = "rtsp://admin:密码@192.168.0.93:554/stream0";
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
private static String dir = "D:/VideoRec/Image";
private static String nginxServer = "http://192.168.0.56:8999";
static {
try {
// getClass().getClassLoader().getResourceAsStream(arg0);
// System.out.println("MainTest.class.getClass()"+MainTest.class.getClass().toString());
InputStream in = Main.class.getResourceAsStream("opencv_java440.dll"); //dll文件位置
System.out.println("Main.class.getClass()" + in);
File ffile = new File("");
String filePath = null;
filePath = ffile.getAbsolutePath() + File.separator + "opencv_java440.dll";
System.out.println("filePath opencv_java410.dll is " + filePath);
File dll = new File(filePath);
FileOutputStream out = new FileOutputStream(dll); //缓存dll位置
int i;
byte[] buf = new byte[1024];
try {
while ((i = in.read(buf)) != -1) {
out.write(buf, 0, i);
}
} finally {
in.close();
out.close();
}
System.load(dll.getAbsolutePath());//
dll.deleteOnExit();
} catch (Exception e) {
System.err.println("load jni error!");
}
}
public static void main(String[] args) {
// System.load(ClassLoader.getSystemResource("opencv_java440.dll").getPath());
System.out.println("load opencv_java440.dll success");
}
private static void openVideo64() {
VideoCapture capture = null;
try {
// System.load(ClassLoader.getSystemResource("static/opencv_java440.dll").getPath());
capture = new VideoCapture();
capture.open(rtsp_64);
int height = (int) capture.get(Videoio.CAP_PROP_FRAME_HEIGHT);
int width = (int) capture.get(Videoio.CAP_PROP_FRAME_WIDTH);
if (height == 0 || width == 0) {
throw new Exception("camera not found!");
}
Mat capImg = new Mat();
Mat temp = new Mat();
while (true) {
capture.read(capImg);
Imgproc.cvtColor(capImg, temp, Imgproc.COLOR_RGB2GRAY);
String path = dir + "/" + sdf.format(new Date()) + ".jpg";
Imgcodecs.imwrite(path, temp);
// sendToWeb("2", path);
// Thread.sleep(300);
}
} catch (Exception e) {
System.out.println("异常:" + e.toString() + " --- " + Arrays.toString(e.getStackTrace()));
} finally {
if (capture != null && capture.isOpened()) {
System.out.println("-----capture--done--");
capture.release();
}
}
}
}
``