1. A method for resizing images, the method comprising: receiving a digital image comprising a rectangular array of rows and columns of pixels, wherein the received digital image is to be resized in a direction of resizing comprising one of a horizontal direction and a vertical direction; computing an energy value for each of the pixels; selecting pixels to form a plurality of extended 8-connectivity seams, wherein each seam has a cumulative energy comprising a sum of the energy values of the selected pixels forming the seam; segmenting the received digital image into a plurality of segments, each segment corresponding to a line of at least one of text and images; generating a resized image from the received digital image, comprising: selecting a selected seam of the plurality of extended 8-connectivity seams, the selected seam selected based on best maintaining a proportionality of white space in the plurality of segments when replicated or deleted; replicating the selected seam if the received digital image is being enlarged in size; and deleting the selected seam if the received digital image is being reduced in size; repeating at least the generating a resized image until the resized image is a desired size; and outputting the resized image to at least one of a display screen, a storage device, and a printer for producing a printed image.