Die Antwort ist richtig, ich will trotzdem kurz was zum Hintergrund sagen:
Aus technischen Gründen wird entweder 16bit oder 32bit verwendet. Dein Bild ist sehr wahrscheinlich mit 24bit gespeichert (standard bmp). Das Format wird automatisch zu 16bit konvertiert, wodurch weniger Farben zur Verfügung stehen und die hässlichen Übergänge zustande kommen.
Zu dem scale-Problem: Der Scale Faktor ist wahrscheinlich zu ungenau, da "var" nur drei Stellen hinter dem Komma verwendet. my.scale_x += 0.001 sollte das Problem beheben.