Saturday, 2 July 2016

Now modify the program one more time to replace the two functions pixelOnVerticalEdge and pixelOnHorizontalEdge with one function to do the same thing called pixelOnEdgeDifferentThicknesses( ). The parameters are not shown. You should decide on the parameters. Write the function and test it to make sure it works the same as the two functions it replaces, so you can generate pictures with borders that have different thicknesses for the vertical borders vs. the horizontal borders. Here is an example: Here is an island picture:

// write your code here
function setBlack(pixel){
    pixel.setBlue(0);
    pixel.setGreen(0);
    pixel.setRed(0);
    return pixel;
}
function pixelOnEdgeDifferentThicknesses(pixel, image, borderWidth){
    var x = pixel.getX();
    var y = pixel.getY();
 
    if (x < borderWidth) return true;
    if (y < (borderWidth+40)) return true;
    if (x >= image.getWidth() - borderWidth) return true;
    if (y >= image.getHeight() - (borderWidth+40)) return true;
    return false;
}

var image = new SimpleImage ("lion.jpg");
print (image);
for ( var pixel of image.values()){
    if (pixelOnEdgeDifferentThicknesses(pixel, image, 25) ){
        pixel = setBlack(pixel);
    }
   
}
print (image);

Here is the island picture with a border around it:
Here is a picture of the island with different thicknesses for the vertical versus horizontal borders:

No comments:

Post a Comment