В графических редакторах есть математический аппарат, который по определённому алгоритму проводит расчёты и формирует изменённое изображение. Таких алгоритмов несколько и результат порой значимо зависит от выбранного.
Если сеть изображение размера в1*ш1, а нам нужно в2*ш2, то сначала вычисляеться наименьшее общее делимое (НОД и НОД - в школе учили в младших классах) , соответственно для высоты и ширины отдельно. Пусть это Нв и Нш, потом получают коэффициент Нв/в1 и Нш/ш1 - а это будут точно целые числа, из=за выбора числа Н1 (НОД - если понимаете что это - вопросов не должно возникнуть) и теперь каждый пиксель копируб по вертикале Н1/в1 раз, и по горизонтале . Получаеться исходное изображение, у которого в азы увеличили число пикселей. Потом берут и делят это изображение на прямоугольники Нв/в1 * Нш/ш2 пикселей (таких прямоугольников как догадались умные читатели будет именно в2*ш2) - в пределах которых происходит осреднение цвета.
Соответственно для снижение используемой памяти существуют различные алгоритмы, дабы не хранить увеличенное изображение полностью и есть нюансы по осреднению, которое выполняеться очевидно, для каждого цветового канала отдельно. (т. е. теоретически - лучше всего уменьшать/увеличивать размер в режиме CMYK). Да и таки увеличивают тем же макаром.
Есть еще интреполяционные методы, когда исходное изображение чисто математически переодят в уравнения (линейное чаще всего - но результат в этом случае не отличаеться от выше описанного, квадратное или кубическое - что очень круто, позволяет сохраниь больше контраста) . Данный способ точно применяеться в фотиках - когда увеличивают инфу с мамтрицы, добавляя 1/2 зеленых и 3/4 синего и 3/4 красного (да нас дурят! - пикселей много, а инфы в 3 разаменьше! )