我在一个项目中使用 OpenImaj,我需要将 800*600 的视频显示到面板上,但是当我单击按钮时,我必须在 1920,1080 处捕获图像。
我的策略最初是在 1920,1080 处从我的网络摄像头捕获图像,并在我的 panelVideo 中包含的标签图标中调整图像大小。
我的问题是性能非常低。
有没有一种有效的方法可以根据 panelVideo 的大小调整视频大小而不改变帧大小(我用来将图像保存在 1920,1080)?谢谢您的回答。问候。
final VideoCapture vc = new VideoCapture(1920,1080);
vc.setFPS(10);
final VideoDisplay<MBFImage> display = VideoDisplay.createVideoDisplay(vc, panelVideo);
display.addVideoListener(new VideoDisplayAdapter<MBFImage>()
{
@Override
public void beforeUpdate(final MBFImage frame)
{
//here I create a bufferedImage from the resized frame
BufferedImage img = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) img.getGraphics();
g.drawImage(ImageUtilities.createBufferedImageForDisplay(frame), 0, 0, 800, 600, null);
//here is the label that I use to display the video
labelVideo.setIcon(new ImageIcon(ImageUtilities.createBufferedImageForDisplay(frame)));
}
});