Redimensionnement d'image

moimeme -  
CRBHD Messages postés 153 Statut Membre -
Bonjour à tous,

Peut on écrire une macro qui redimmensionne les images en gardant l'échelle (j'ai plein d'ilmages de tailles et formes différentes et je veux qu'elles aient toutes la même largeur mais en gardant leur proportions initiales) ?

J'ai essayé ca :
Sub Redimmensionnement()
For Each Pict In ActiveDocument.InlineShapes
Pict.LockAspectRatio = True
Pict.Width = 500
Next
End Sub

mais ca ne garde pas l'échelle ?

Merci d'avance
A voir également:

3 réponses

CRBHD Messages postés 153 Statut Membre 9
 
Bonjour,

essaye ça :

Pict.Height = (500/Pict.Width) * Pict.Height
Pict.width = 500

Je suis sûr de rien, je suis fatigué et je dis peut-être une grosse bêtise ^^

:)
0
moimeme
 
bien sûr !
merci
0
Rochat1
 
Bonjour,
Mathématiquement, c'est impossible. Si j'ai bien compris, vous souhaitez que toutes vos photos aient la même largeur même si la hauteur est différente et par dessu tout ça, vous "exigez" des proportions identiques !!!! Non, pour accéder à vos désirs, vous devrez "couper" l'image sur la hauteur. J'ai personnellement réaliser celà pour établir un imposant album. J'ai dû procéder ainsi et c'est tout à fait réussi. Bon courage et @+
0
CRBHD Messages postés 153 Statut Membre 9
 
Bonjour,

Dans quelles mesures est-ce impossible ? Ce n'est qu'une histoire de proportions...

Un bel exemple en php, qui en plus de respecter les proportions, permet de choisir une taille maximale en hauteur comme en largeur :

function redimage($img_src,$img_dest,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = getimagesize($img_src);
$src_w = $size[0];
$src_h = $size[1];
// Teste les dimensions
$prop_w = round(($src_w / $src_h),2);
$prop_h = round(($src_h / $src_w),2);
if ($src_w >= $src_h)
{
$dst_w=440;
$dst_h = $dst_w * $prop_h;
if ($dst_h > 250)
{
$dst_h = 250;
$dst_w = $dst_h * $prop_w;
}
}
else
{
$dst_h=250;
$dst_w = round(($dst_h * $prop_w),1);
if ($dst_w > 440)
{
$dst_w=440;
$dst_h=$dst_w * $prop_h;
}
}
// Crée une image vierge aux bonnes dimensions
$dst_im = imagecreatetruecolor($dst_w,$dst_h);
// Copie dedans l'image initiale redimensionnée
$src_im = imagecreatefromjpeg($img_src);
echo "img = $img_src <br>";
imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
// Sauve la nouvelle image
imagejpeg($dst_im,$img_dest,100);
// Détruis les tampons
imagedestroy($dst_im);
imagedestroy($src_im);
return "http://www.xxx.be/images/resized/" . $img_dest;
}

Et ça n'est que mathématique (en dehors des fonctions images évidemment).

@+
0