цвет не влияет на размер , ну он влияет но там несколько условий
цвет можно запрограммировать 1 битом, байтом, словом , тремя байтами и т.д.
а еще можно программировать сжатие, а еще есть векторная и растровая графика
можно написать алгоритм в котором будет указано, что прямоугольник с координатами x1,y1-x2,y2 закрасить цветом C или каждую точку с координатами в прямоугольнике x1,y1-x2,y2 закрасить в свой цвет...
кривая это что? это либо множество прямых с координатами начала и конца и цветом x1,y1-x2,y2 либо это множество точек ...
растровая графика на примере BMP обычно работает с точками и вычисляется по формуле x*y*глубину цвета + около 200 байт которые содержат размер, глубину цвета, сигнатуру и....читайте спецификации .BMP
есть еще например алгоритмы сжатия, используемые в видео сжатии где, по суди идет ряд кадров, но этот ряд кадров изменяет картинку не на всей поверхности, а в некоторых ее частях, кодируются только изменяющиеся участки картинки ...
ну это мое имхо