Redimensionnement image

Le
PimSaVie
Bonjour

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

J'arrive donc à avoir une hauteur de 320

Mais la largeur laisse à désirer : en effet, je suis obligée de faire
une rotation dans un champs image carré : une fois redimensionnée, ma
photo est centrée dans le champ avec une barre blanche de chaque côté.

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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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