As part of my Code Art Project series, this is a DIY, or "do it yourself", of Photoshop. This was done with the help of the coding software Processing. The idea with this project is to create artwork, using encoded tools with their own functions, as a person would do in Photoshop. The image below is simply an example of the work that can be done using the encoded software.
DIY Photoshop- Space Exploration
var img;
var initials ='ag'; // your initials
var choice = '1'; // starting choice, so it is not empty
var screenbg = 250; // off white background
var lastscreenshot=61; // last screenshot never taken
function preload() {
// preload() runs once, it may make you wait
// img = loadImage('cat.jpg'); // cat.jpg needs to be next to this .js file
// you can link to an image on your github account
}
function setup() {
createCanvas(600, 600); // canvas size
background(screenbg); // use our background screen color
}
function draw() {
if (keyIsPressed) {
choice = key; // set choice to the key that was pressed
clear_print(); // check to see if it is clear screen or save image
}
if (mouseIsPressed){
newkeyChoice(choice); // if the mouse is pressed call newkeyChoice
}
}
function newkeyChoice(toolChoice) { //toolchoice is the key that was pressed
// the key mapping if statements that you can change to do anything you want.
// just make sure each key option has the a stroke or fill and then what type of
// graphic function
if (toolChoice == '1' ) { // first tool
background(0);
} else if (toolChoice == '2') { // second tool
noStroke(20);
fill(75,189,232);
ellipse(mouseX, mouseY, 10, 10);
} else if (toolChoice == '3') { // third tool
noStroke(20);
fill(255);
ellipse(mouseX, mouseY, 15, 15);
} else if (toolChoice == '4') { // fourth tool
noStroke(0);
fill(144,106,58);
ellipse(mouseX, mouseY, 18, 12);
} else if (key == '5') { // fifth tool
stroke(255, 0, 0); //red
line(mouseX, mouseY, pmouseX, pmouseY);
} else if (toolChoice == '6') { // sixth tool
stroke(255, 126, 0); //orange
line(mouseX, mouseY, pmouseX, pmouseY);
} else if (toolChoice == '7') { // seventh tool
stroke(246, 255, 0); //yellow
line(mouseX, mouseY, pmouseX, pmouseY);
} else if (toolChoice == '8') { // eigth tool
stroke(60, 255, 0); //green
line(mouseX, mouseY, pmouseX, pmouseY);
} else if (toolChoice == '9') { // ninth tool
stroke(96,40,240); //purple
line(mouseX, mouseY, pmouseX, pmouseY);
} else if (toolChoice == '0') { // tool 0
stroke(200); //white
line(mouseX, mouseY, pmouseX, pmouseY);
} else if (toolChoice == 'g' || toolChoice == 'G') { // g places the image we pre-loaded
noStroke(20);
fill(random(255), random(255), random(255), random(255));
ellipse(mouseX, mouseY, 30, 30);
}
}
function testbox(r, g, b) {
// this is a test function that will show you how you can put your own functions into the sketch
x = mouseX;
y = mouseY;
fill(r, g, b);
rect(x-50, y-50, 100, 100);
}
function clear_print() {
// this will do one of two things, x clears the screen by resetting the background
// p calls the routine saveme, which saves a copy of the screen
if (key == 'x' || key == 'X') {
background(screenbg); // set the screen back to the background color
} else if (key == 'p' || key == 'P') {
saveme(); // call saveme which saves an image of the screen
}
}
function saveme(){
//this will save the name as the intials, date, time and a millis counting number.
// it will always be larger in value then the last one.
filename=initials+day() + hour() + minute() +second();
if (second()!=lastscreenshot) { // don't take a screenshot if you just took one
saveCanvas(filename, 'jpg');
}
lastscreenshot=second(); // set this to the current second so no more than one per second
}