1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
largeur : largeur de l'image d'origine
hauteur : hauteur de l'image d'origine
image : image d'origine
larg : largeur de l'image d'arrivée
haut : hauteur de l'image d'arrivée
img : image d'arrivée (inti avec une couleur (0,0,0,0) partout)
scale(image,largeur,hauteur,img,larg,haut)
raportx <- largeur/larg (division réelle)
raporty <- hauteur/haut (division réelle)
POUR j DE 1 A haut FAIRE
POUR i DE 1 A larg FAIRE
setPixel(img,i,j,getPixel(image,i*rapportx,j*rapporty))
FIN-POUR
FIN-POUR
FIN-scale
x et y des réels
Couleur getPixel(image,x,y)
xx=E(x)
yy=E(y)
poidsx1 <- 1-x+E(x)
poidsx2 <- x-E(x)
poidsy1 <- 1-y+E(y)
poidsy2 <- y-E(y)
couleur11 <- getCouleur(image,xx,yy)
couleur21 <- getCouleur(image,xx+1,yy)
couleur12 <- getCouleur(image,xx,yy+1)
couleur22 <- getCouleur(image,xx+1,yy+1)
alpha <- E(getAlpha(couleur11)*(poidsx1+poidsy1)/2 + getAlpha(couleur21)*(poidsx2+poidsy1)/2 + getAlpha(couleur12)*(poidsx1+poidsy2)/2 + getAlpha(couleur11)*(poidsx2+poidsy2)/2)
rouge <- E(getRouge(couleur11)*(poidsx1+poidsy1)/2 + getRouge(couleur21)*(poidsx2+poidsy1)/2 + getRouge(couleur12)*(poidsx1+poidsy2)/2 + getRouge(couleur11)*(poidsx2+poidsy2)/2)
vert <- E(getVert(couleur11)*(poidsx1+poidsy1)/2 + getVert(couleur21)*(poidsx2+poidsy1)/2 + getVert(couleur12)*(poidsx1+poidsy2)/2 + getVert(couleur11)*(poidsx2+poidsy2)/2)
bleu <- E(getBleu(couleur11)*(poidsx1+poidsy1)/2 + getBleu(couleur21)*(poidsx2+poidsy1)/2 + getBleu(couleur12)*(poidsx1+poidsy2)/2 + getBleu(couleur11)*(poidsx2+poidsy2)/2)
returon Couleur(alpha,rouge,vert,bleu)
}
Fin-getPixel
getCouleur(image,x,y)
SI x<1 ALORS x <- 1
SI x>largeur ALORS x <- largeur
SI y<1 ALORS y <- 1
SI y>hauteur ALORS y <- hauteur
retourne image.couleur(x,y)
FIN-getCouleur |
Partager