Add basic processing example
This commit is contained in:
parent
52a5de45e6
commit
37ad2d049b
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#https://github.com/processing/processing/wiki/Command-Line
|
||||||
|
|
||||||
|
# processing-java requires the full path of the sketch
|
||||||
|
SKETCH=`realpath ./processing/example-sketch`
|
||||||
|
echo "$SKETCH"
|
||||||
|
# pass all arguments on bash script example-sketch.pde sketch
|
||||||
|
processing-java --sketch="${SKETCH}" --run \
|
||||||
|
"${@}"
|
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
//Input should be .jpg or .png
|
||||||
|
String input = "";
|
||||||
|
String output = "";
|
||||||
|
|
||||||
|
PImage inputImage;
|
||||||
|
PGraphics canvas;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
if (args != null) {
|
||||||
|
if (args.length > 0 && args[0] != null) {
|
||||||
|
input = args[0];
|
||||||
|
} else {
|
||||||
|
println("No input argument provided");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
if (args.length > 1 && args[1] != null) {
|
||||||
|
output = args[1];
|
||||||
|
} else {
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
println("No arguments provided");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
//don't show the processing window
|
||||||
|
surface.setVisible(false);
|
||||||
|
//only draw script once
|
||||||
|
noLoop();
|
||||||
|
//use psuedo-random generator
|
||||||
|
randomSeed(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw () {
|
||||||
|
inputImage = loadImage(input);
|
||||||
|
canvas = createGraphics(inputImage.width, inputImage.height);
|
||||||
|
canvas.image(inputImage, 0, 0);
|
||||||
|
|
||||||
|
/************************
|
||||||
|
* Do cool things here!!!
|
||||||
|
************************/
|
||||||
|
|
||||||
|
canvas.save(output);
|
||||||
|
exit();
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
#
|
||||||
|
# This script will export all frames of a video and
|
||||||
|
# then loop over them by running a processing sketch
|
||||||
|
# on each one. The example provided "example-sketch"
|
||||||
|
# will
|
||||||
|
#
|
||||||
|
# Usage: bash processing/processing.sh <input video> <output video>
|
||||||
|
#
|
||||||
|
#####################################################
|
||||||
|
|
||||||
|
INPUT="${1}"
|
||||||
|
OUTPUT="${2}"
|
||||||
|
|
||||||
|
# Check if output file extension is .mov
|
||||||
|
if [[ "${OUTPUT}" != *".mov" ]]; then
|
||||||
|
echo "Please use an .mov extension on your output file argument"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p frames
|
||||||
|
mkdir -p processing-frames
|
||||||
|
|
||||||
|
ffmpeg -i "${INPUT}" frames/frame-%06d.png
|
||||||
|
|
||||||
|
FRAMES=frames/*.png
|
||||||
|
|
||||||
|
for frame in ${FRAMES}; do
|
||||||
|
echo "Processing $frame with example-sketch..."
|
||||||
|
|
||||||
|
# Run the processing sketch on every frame
|
||||||
|
bash processing/example-sketch.sh "${frame}" "processing-${frame}"
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
ffmpeg -f image2 -i processing-frames/frame-%06d.png -c:v prores_ks -profile:v 3 "${OUTPUT}"
|
||||||
|
|
||||||
|
# clean up frames folder
|
||||||
|
rm -rf frames
|
||||||
|
rm -rf processing-frames
|
Loading…
Reference in New Issue