Submitted by graou on
Je dois être un peu neuneu, mais j'ai du mal à me servir d'imagecache. Ce que je souhaite faire : une vignette carrée de 100x100 découpée dans l'image.
Donc par exemple si mon image fait 500x1000, ça la ramène à une image de 100x200, puis ça prend un carré au milieu.
Cela doit évidemment marcher pour une image 1000x500 aussi.
Ça doit être tout con, mais bon...
Cordialement,
Philippe LAGARDE
Bon, j'y arrive avec une
Permalien Soumis par graou le 29 Août, 2008 - 15:41
Bon, j'y arrive avec une fonction "deprecated" : scale and crop. Mais si je pouvais le faire proprement pour des migrations en douceur, ce serait mieux.
Personne sur ce coup-là?
Permalien Soumis par graou le 4 Septembre, 2008 - 12:45
Personne sur ce coup-là?
j'ai developper une fonction
Permalien Soumis par squall le 4 Septembre, 2008 - 13:53
j'ai developper une fonction qui permet de super bien gerer imagecache.
petit exemple, si ou tu souhaite utilisé image cache tu l'appelle de cette facon :
le 150x100 correspond au nom du preset que tu a entrée dans imagecache. (petite info les images sont generer a la volée)
$output .= ''.getIndexImg($node, '150x100').'';
et dans le fichier template.php tu colle cette fonction:
function getIndexImg($node = false, $preset = false, $attributes = NULL){
if(is_object($node)) {
$firstImg = $node->field_image[0];
$secondImg = $node->field_image[1];
if($preset && (isset($firstImg) || isset($secondImg))) {
if (isset($firstImg) && file_exists($firstImg['filepath'])) {
$infoFirstImg = getimagesize($firstImg['filepath']);
}
if (isset($secondImg) && file_exists($secondImg['filepath'])) {
$infoSecondImg = getimagesize($secondImg['filepath']);
}
if ($infoFirstImg[0] > $infoFirstImg[1]) {
if ($firstImg['alt'] != "") {
$alt = $firstImg['alt'];
}else{
$alt = $firstImg['title'];
}
return theme('imagecache', $preset, $firstImg['filepath'], $alt, $firstImg['title'], $attributes);
}else if ($secondImg != null && $infoSecondImg[0] > $infoSecondImg[1]) {
if ($secondImg['alt'] != "") {
$alt = $secondImg['alt'];
}else{
$alt = $secondImg['title'];
}
return theme('imagecache', $preset, $secondImg['filepath'], $alt, $secondImg['title'], $attributes);
}else{
return false;
}
}else{
return false;
}
}else {
return false;
}
}
As-tu essayé de faire un
Permalien Soumis par cyprien le 5 Septembre, 2008 - 16:51
As-tu essayé de faire un scale à 100 de largeur puis un crop ?
Si l'image est horizontale,
Permalien Soumis par graou le 5 Septembre, 2008 - 17:15
Si l'image est horizontale, ça ne doit pas marcher.
En fait il faut ramener la plus petite des dimensions à 100, puis "cropper".