Redimensionnement image

Le
PimSaVie
Bonjour

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

J'arrive donc avoir une hauteur de 320

Mais la largeur laisse dsirer : en effet, je suis oblige de faire
une rotation dans un champs image carr : une fois redimensionne, ma
photo est centre dans le champ avec une barre blanche de chaque ct.

J'arrive 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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
PimSaVie
Le #14650371
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 :(
PimSaVie
Le #14650311
On 4 avr, 08:04, Gilles
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)
PimSaVie
Le #14650231
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
Publicité
Poster une réponse
Anonyme