Generally speaking, there are three main types of algorithms which can be made use of by people in the process of image scaling to increase the size of an image. First of all, the simplest method is to take each original pixel in the source image and then copy it to the corresponding position in the larger image. Some gaps between the pixels in the larger image may appear, but they can be filled by assigning to the empty pixels to the color of the source pixel to the left of the current location. As a matter of fact, such operations can multiply an image and its data into a larger area. This method, called nearest-neighbor, is very useful in terms of preventing data loss, but the image quality usually suffers some damage as the enlarged blocks of individual pixels will be clearly visible.
There are also some other image scaling algorithms called bilinear interpolation and bicubic interpolation. They work by filling in the empty spaces in an enlarged image with pixels whose color is determined by the color of the given pixels surrounding it. Under such conditions, the scaled image will be smoother than the scaled image using the nearest-neighbor method, but the image may suffer from some other problems, including becoming blurry and full of indistinct blocks of color.
The third type of image scaling algorithm makes use of pattern recognition to identify the different areas of an image being enlarged. Next, it tries to structure the missing pixels. This method will bring people a lot of benefits. However, the more times the image is scaled by this algorithm, the more visual artifacts will appear. In addition, this method requires more money than other types of scaling when scaling full-color photographic images, which makes it more computationally expensive under some circumstances.