- Kitai a écrit:
- puis ça la "matricialise" à nouveau.
Je crois qu'on peut dire "rasterize" en français aussi.
Après, je ne pense pas qu'il vectorise l'image, je sais qu'il l’agrandit d'abord 8 fois, puis applique son algorithme de rotation et/ou scaling, une histoire de détection des pixels voisins...
(traduction un peu bancale de
ce post explicatif en anglais.)
"D'abord, il double la taille de l'image en utilisant quelque-chose de similaire à "Scale2x" (
un vieil algorithme d'agrandissement de sprites), mais en vérifiant si les pixels sont plus similaires aux autres au lieu de vérifier si ils sont égaux, ce qui donne un résultat moins en forme de blocs (
"blocky") et donne un résultat plus adouci. Le truc important c'est que l’algorithme de mise à l'échelle fonctionne en choisissant un pixel au lieu de mélanger des pixels. Il fait ça 3 fois pour aggrandir 8 fois l'image, déterminé pour être, de manière empirique, un bon endroit pour s'arrêter.
Ensuite (étape optionnelle), il essai de trouver les meilleurs offsets de rotation par une boucle à travers une petite grille de décalages entre 0 et 7 pixels en X et Y et, pour chaque boucle à travers l'image agrandit 8 fois, à l'angle de rotation avec une étape de 8 pixels, et en ajoutant la distance au carré de la différence des composants de couleur entre chaque point et son voisin immédiat (1 pixel) dans l'image agrandit 8 fois, la quelle sera de 0 excepté sur les limites entre les pixels agrandit 8 fois. Alors il va simplement exécuté une mise à l'échelle et rotation standards en "
nearest neightbor", en commençant à l'offset qui donne la somme minimale des différences au carré, et utiliser la mise à l'échelle à 1/8
e, pour renvoyer l'image à la taille normale tout en faisant la rotation.
Finalement (étape optionnelle), il essai de réparer tout mono-pixel négligé (
"overlooked single-pixel details"), en vérifiant pour tout pixel dans l'image de sortie qui a 3 ou 4 "voisins" identiques, égaux à eux-mêmes, mais inégaux avec la couleur à l'endroit correspondant dans l'image source, et remplacer ces pixels avec celui de l'image source (
afin de garder les couleurs d'origines)."