在处理草图中将左侧影片镜像并反射到右侧

问题描述 投票:0回答:1

我必须将左侧视频的一半与右侧视频进行反射和镜像。我尝试了这段代码,但是当我激活效果时,视频仅显示第一帧并且不播放。视频冻结,我听到声音。怎样才能播放视频的效果呢?谢谢!

import processing.video.*;
boolean flipVideo = false;
Movie movie;

PGraphics flippedBuffer; // PGraphics buffer for the flipped video
PImage leftHalf;

void setup() {
  size(640, 480);
  frameRate(30);
  
  movie = new Movie(this, "movie.mov");
 
  movie.loop();
  movie.read();
 

  flippedBuffer = createGraphics(movie.width, movie.height); // Initialize the buffer
}

void draw() {
  if (movie.available() && overlay.available()) {
    movie.read(); 
  }

  movie.loadPixels();
  

  // Create the flipped video and store it in the PGraphics buffer
 if (flipVideo) {
   flippedBuffer.beginDraw();

 leftHalf = get(0, 0, width/2, height);
  flippedBuffer.translate(width, 0);
  flippedBuffer.scale(-1, 1);
  flippedBuffer.image(leftHalf, 0, 0);
  
  flippedBuffer.endDraw();
  } else {
    flippedBuffer.beginDraw();
    flippedBuffer.image(movie, 0, 0); // Use the original video
    flippedBuffer.endDraw();
  }
}

void movieEvent(Movie m) {
  m.read();
}

void addTuioObject(TuioObject tobj) {
...
}

void removeTuioObject(TuioObject tobj) {
 ...
}
processing pgraphics
1个回答
0
投票

我不确定我是否理解你想要实现的目标,但如果你只是想并排显示同一部电影,这个源代码应该可以做到:

import processing.video.*;

Movie movie;

void setup() {
  size(960, 270);  // window width should be twice movie width
  movie = new Movie(this, "xxxx.mp4");  // file in 'data' sketch folder
  movie.loop(); // Use play() to play just once.
}

void movieEvent(Movie movie) {
  movie.read();  // Read new frames from the movie.
}

void draw() {
  image(movie, 0, 0);  // Display side by side
  image(movie, width/2, 0);
}

© www.soinside.com 2019 - 2024. All rights reserved.