Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Redimensionnement image

3 réponses
Avatar
PimSaVie
Bonjour

J'ai une photo en mode paysage (t=EAte de la personne vers la droite)
J'applique une rotation et un redimensionnement =E0 cette photo pour lui
remettre la t=EAte =E0 l'endroit et avoir une dimension de 240*320

J'arrive donc =E0 avoir une hauteur de 320

Mais la largeur laisse =E0 d=E9sirer : en effet, je suis oblig=E9e de faire
une rotation dans un champs image carr=E9 : une fois redimensionn=E9e, ma
photo est centr=E9e dans le champ avec une barre blanche de chaque c=F4t=E9.

J'arrive =E0 supprimer celle de droite en bidouillant, mais j'ai tjs
celle de gauche : est-ce que vous auriez une solution pour que j'ai la
bonne dimension sans marge?

Merci d'avance

Karine

3 réponses

Avatar
PimSaVie
Alors dans la théorie, j'ai tout compris Gilles :p
Dans la pratique, un peu moins je crois ^o)

voila mon code

nHauteur est un entier = 0
nLargeur est un entier = 0
nHauteurBis est un entier = 0
nLargeurBis est un entier = 240
sImageTemp est une chaîne = ""

// Construire le chemin de l'image temporaire
sImageTemp = ComplèteRep(fRépertoireTemp()) + "ImageTemp.JPG"

// Récuperer la hauteur et la largeur de la photo d'origine
nLargeur = ExtraitChaîne(InfoBitmap("C:Mes ProjetsP_00001.JPG"), 2)
nHauteur = ExtraitChaîne(InfoBitmap("C:Mes ProjetsP_00001.JPG"), 3)

// Calculer la largeur de l'image en fonction de la hauteur voulue
nHauteurBis = (nLargeurBis * nLargeur)/nHauteur

// Redimensionner l'image d'origine
IMG_Image1..Hauteur = nHauteur
IMG_Image1..Largeur = nLargeur

// Définir la nouvelle taille de la photo
dRedimensionne(IMG_Image1, nHauteurBis, nLargeurBis)
IMG_Image1..Hauteur = nLargeurBis
IMG_Image1..Largeur = nHauteurBis

// Sauver l'image dans un répertoire temporaire
dSauveImageJPEG(IMG_Image1, sImageTemp, 100)

// Redimensionner le deuxième champs
IMG_Image2..Largeur = nHauteurBis
IMG_Image2..Hauteur = nHauteurBis

// Afficher l'image temporaire
IMG_Image2 = sImageTemp

// Faire une rotation de la photo
dRotation(IMG_Image2,270)


Jusque là, tout va bien, ma photo a presque la bonne dimension : mais
je suis incapable de la redimensionner :( : ça me coupe mon image au
lieu de la retailler : et j'ai beau changer le mode d'affichage (100%;
homothétique), je me retrouve toujours avec des résultats bizarre

Pour plus d'informations:
ma photo d'origine fait 1728*1152 avec la tête à droite

j'arrive à la repasser à une hauteur de 320, en la recollant dans un
autre champ de hauteur 320, mais la largeur, que neni :(
Avatar
PimSaVie
On 4 avr, 08:04, Gilles wrote:
PimSaVie a couché sur son écran :

> Pour plus d'informations:
> ma photo d'origine fait 1728*1152 avec la tête à droite

> j'arrive à la repasser à une hauteur de 320, en la recollant dans un
> autre champ de hauteur 320, mais la largeur, que neni :(

J'essayerais un bout de code quand j'aurais 5 minutes ;)
J'espère que t'es pas trop pressée ;)



J'ai bien 5 minutes devant moi :p

merci :o)
Avatar
PimSaVie
A l'aide de Christophe LOGEL, mon problème est résolu

Je met la solution si ça peut dépanner quelqu'un :

nHauteur est un entier = 0
nLargeur est un entier = 0
nHauteurBis est un entier = 320
nLargeurBis est un entier = 240
sImageTemp est une chaîne = ""
rTauxReductionHauteur est un réel
rTauxDifferentielHauteurLargeur est un réel
rTauxDiffHL_ImageBase est un réel

// Construire le chemin de l'image temporaire
sImageTemp = ComplèteRep(fRépertoireTemp()) + "ImageTemp.JPG"
// Récuperer la hauteur et la largeur de la photo d'origine
nLargeur = ExtraitChaîne(InfoBitmap(gfsNomImage), 2)
nHauteur = ExtraitChaîne(InfoBitmap(gfsNomImage), 3)

rTauxDiffHL_ImageBase = nHauteur / nLargeur
rTauxDifferentielHauteurLargeur = nLargeurBis / nHauteurBis

IMG_Image1..Largeur = nLargeurBis + (nLargeurBis * (1 +
rTauxDifferentielHauteurLargeur - rTauxDiffHL_ImageBase) )

IMG_Image1 = sImageTemp

IMG_Image2..Largeur = Max(nLargeurBis,nHauteurBis)
IMG_Image2..Hauteur = Max(nLargeurBis,nHauteurBis)

dCopieImage(IMG_Image1,IMG_Image2,copieSrcCopie,0,0,nLargeurBis,
nHauteurBis,0,0, nLargeurBis, nHauteurBis)

dRotation(IMG_Image2,270)

IMG_Image2..Largeur = nLargeurBis
IMG_Image2..Hauteur = nHauteurBis