How can I crop an image in p5.js without drawing image on the screen











up vote
0
down vote

favorite












I've researched and found that you can "crop" an image by using get(), but the image has to be drawn on the screen where you then take a section of the canvas. Is it possible to load an image then save a cropped version of it in a variable? So maybe something like this:



var img;
var cropped;

function preload(){
img = imageLoad('dog.png', crop)
}

function crop(image){
cropped = crop(img, 0, 0, img.w/2, img.h) // Getting left half of image
}


Thank you.





EDIT:
This is the function I made using copy(), but I don't know if there's an easier way that I'm missing.



function crop(image, x, y, w, h) {
var cropped = createImage(w, h);
cropped.copy(image, x, y, x + w, y + h, 0, 0, x + w, y + h)
return cropped;
}









share|improve this question
























  • What is this crop() function? I'm pretty sure your code will cause a stack overflow.
    – Kevin Workman
    Nov 11 at 0:41










  • It was pseudo code, an example.
    – Jared Parker
    Nov 11 at 10:46















up vote
0
down vote

favorite












I've researched and found that you can "crop" an image by using get(), but the image has to be drawn on the screen where you then take a section of the canvas. Is it possible to load an image then save a cropped version of it in a variable? So maybe something like this:



var img;
var cropped;

function preload(){
img = imageLoad('dog.png', crop)
}

function crop(image){
cropped = crop(img, 0, 0, img.w/2, img.h) // Getting left half of image
}


Thank you.





EDIT:
This is the function I made using copy(), but I don't know if there's an easier way that I'm missing.



function crop(image, x, y, w, h) {
var cropped = createImage(w, h);
cropped.copy(image, x, y, x + w, y + h, 0, 0, x + w, y + h)
return cropped;
}









share|improve this question
























  • What is this crop() function? I'm pretty sure your code will cause a stack overflow.
    – Kevin Workman
    Nov 11 at 0:41










  • It was pseudo code, an example.
    – Jared Parker
    Nov 11 at 10:46













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I've researched and found that you can "crop" an image by using get(), but the image has to be drawn on the screen where you then take a section of the canvas. Is it possible to load an image then save a cropped version of it in a variable? So maybe something like this:



var img;
var cropped;

function preload(){
img = imageLoad('dog.png', crop)
}

function crop(image){
cropped = crop(img, 0, 0, img.w/2, img.h) // Getting left half of image
}


Thank you.





EDIT:
This is the function I made using copy(), but I don't know if there's an easier way that I'm missing.



function crop(image, x, y, w, h) {
var cropped = createImage(w, h);
cropped.copy(image, x, y, x + w, y + h, 0, 0, x + w, y + h)
return cropped;
}









share|improve this question















I've researched and found that you can "crop" an image by using get(), but the image has to be drawn on the screen where you then take a section of the canvas. Is it possible to load an image then save a cropped version of it in a variable? So maybe something like this:



var img;
var cropped;

function preload(){
img = imageLoad('dog.png', crop)
}

function crop(image){
cropped = crop(img, 0, 0, img.w/2, img.h) // Getting left half of image
}


Thank you.





EDIT:
This is the function I made using copy(), but I don't know if there's an easier way that I'm missing.



function crop(image, x, y, w, h) {
var cropped = createImage(w, h);
cropped.copy(image, x, y, x + w, y + h, 0, 0, x + w, y + h)
return cropped;
}






javascript image crop p5.js






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 11:06

























asked Nov 11 at 0:35









Jared Parker

538




538












  • What is this crop() function? I'm pretty sure your code will cause a stack overflow.
    – Kevin Workman
    Nov 11 at 0:41










  • It was pseudo code, an example.
    – Jared Parker
    Nov 11 at 10:46


















  • What is this crop() function? I'm pretty sure your code will cause a stack overflow.
    – Kevin Workman
    Nov 11 at 0:41










  • It was pseudo code, an example.
    – Jared Parker
    Nov 11 at 10:46
















What is this crop() function? I'm pretty sure your code will cause a stack overflow.
– Kevin Workman
Nov 11 at 0:41




What is this crop() function? I'm pretty sure your code will cause a stack overflow.
– Kevin Workman
Nov 11 at 0:41












It was pseudo code, an example.
– Jared Parker
Nov 11 at 10:46




It was pseudo code, an example.
– Jared Parker
Nov 11 at 10:46












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










You can access the pixels of an image directly. You don't have to draw it to the canvas first.



Start by reading through the P5.Image reference.



At a high level, what you want to do is create a new graphics (the createGraphics() function is your friend, and then draw the section of the image you want to that graphics. Whether you draw the image or the graphics to the canvas is up to you.






share|improve this answer





















  • Thank you. I was able to create my own crop function using copy().
    – Jared Parker
    Nov 11 at 10:51











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244785%2fhow-can-i-crop-an-image-in-p5-js-without-drawing-image-on-the-screen%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote



accepted










You can access the pixels of an image directly. You don't have to draw it to the canvas first.



Start by reading through the P5.Image reference.



At a high level, what you want to do is create a new graphics (the createGraphics() function is your friend, and then draw the section of the image you want to that graphics. Whether you draw the image or the graphics to the canvas is up to you.






share|improve this answer





















  • Thank you. I was able to create my own crop function using copy().
    – Jared Parker
    Nov 11 at 10:51















up vote
0
down vote



accepted










You can access the pixels of an image directly. You don't have to draw it to the canvas first.



Start by reading through the P5.Image reference.



At a high level, what you want to do is create a new graphics (the createGraphics() function is your friend, and then draw the section of the image you want to that graphics. Whether you draw the image or the graphics to the canvas is up to you.






share|improve this answer





















  • Thank you. I was able to create my own crop function using copy().
    – Jared Parker
    Nov 11 at 10:51













up vote
0
down vote



accepted







up vote
0
down vote



accepted






You can access the pixels of an image directly. You don't have to draw it to the canvas first.



Start by reading through the P5.Image reference.



At a high level, what you want to do is create a new graphics (the createGraphics() function is your friend, and then draw the section of the image you want to that graphics. Whether you draw the image or the graphics to the canvas is up to you.






share|improve this answer












You can access the pixels of an image directly. You don't have to draw it to the canvas first.



Start by reading through the P5.Image reference.



At a high level, what you want to do is create a new graphics (the createGraphics() function is your friend, and then draw the section of the image you want to that graphics. Whether you draw the image or the graphics to the canvas is up to you.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 11 at 0:43









Kevin Workman

32.9k53967




32.9k53967












  • Thank you. I was able to create my own crop function using copy().
    – Jared Parker
    Nov 11 at 10:51


















  • Thank you. I was able to create my own crop function using copy().
    – Jared Parker
    Nov 11 at 10:51
















Thank you. I was able to create my own crop function using copy().
– Jared Parker
Nov 11 at 10:51




Thank you. I was able to create my own crop function using copy().
– Jared Parker
Nov 11 at 10:51


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244785%2fhow-can-i-crop-an-image-in-p5-js-without-drawing-image-on-the-screen%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Xamarin.iOS Cant Deploy on Iphone

Glorious Revolution

Dulmage-Mendelsohn matrix decomposition in Python