//Create canvas for cropping the image
        var cropCanvas = document.createElement("canvas")
        var cropContext = cropCanvas.getContext("2d")
        cropCanvas.onload = function() {
            //document.body.appendChild(cropCanvas) //For testing purposes only
        }
        //Function that auto crops the image
        function autocrop(url, destination) {
            //Create image, size canvas, draw image
            var imgTempSetSymbol = new Image()
            imgTempSetSymbol.crossOrigin = "anonymous"
            imgTempSetSymbol.src = url
            imgTempSetSymbol.onload = function() {
                if (imgTempSetSymbol.width > 0 && imgTempSetSymbol.height > 0) {
                cropCanvas.width = imgTempSetSymbol.width
                cropCanvas.height = imgTempSetSymbol.height
                cropContext.drawImage(imgTempSetSymbol, 0, 0)
                //declare variables
                var width = cropCanvas.width
                var height = cropCanvas.height
                var pix = {x:[], y:[]}
                var imageData = cropContext.getImageData(0,0,cropCanvas.width,cropCanvas.height)
                var x, y, index
                //Go through every pixel and
                for (y = 0; y < height; y++) {
                    for (x = 0; x < width; x++) {
                        //(y * width + x) * 4 + 3 calculates the index at which the alpha value of the pixel at x, y is given
                        index = (y * width + x) * 4 + 3
                        if (imageData.data[index] > 0) {
                            //pix is the image object that stores two arrays of x and y coordinates. These stored coordinates are all the visible pixels
                            pix.x.push(x)
                            pix.y.push(y)
                        }
                    }
                }
                //sorts the arrays numerically
                pix.x.sort(function(a,b){return a-b})
                pix.y.sort(function(a,b){return a-b})
                var n = pix.x.length - 1
                //Finds the difference between the leftmost and rightmost visible pixels, and the topmost and bottommost pixels, cuts out a section of the canvas
                width = pix.x[n] - pix.x[0]
                height = pix.y[n] - pix.y[0]
                var cropped = cropContext.getImageData(pix.x[0], pix.y[0], width + 1, height + 1)
                //Resizes the canvas and draws cropped image
                cropCanvas.width = width + 1
                cropCanvas.height = height + 1
                cropContext.putImageData(cropped, 0, 0)
                //Saves the newly cropped image to the given image
                destination.src = cropCanvas.toDataURL()
            }
        }
        }
