Utiliser PHP pour créer des vignettes. (Recadrée en carré)
J'ai un script php je suis actuellement aide qui crée des vignettes basé sur un max de largeur et de hauteur. Cependant, j'aimerais qu'il à toujours créer des images carrées et de recadrer les images en cas de besoin.
Voici ce que j'utilise maintenant:
function makeThumb( $filename, $type ) {
global $max_width, $max_height;
if ( $type == 'jpg' ) {
$src = imagecreatefromjpeg("blocks/img/gallery/" . $filename);
} else if ( $type == 'png' ) {
$src = imagecreatefrompng("blocks/img/gallery/" . $filename);
} else if ( $type == 'gif' ) {
$src = imagecreatefromgif("blocks/img/gallery/" . $filename);
}
if ( ($oldW = imagesx($src)) < ($oldH = imagesy($src)) ) {
$newW = $oldW * ($max_width / $oldH);
$newH = $max_height;
} else {
$newW = $max_width;
$newH = $oldH * ($max_height / $oldW);
}
$new = imagecreatetruecolor($newW, $newH);
imagecopyresampled($new, $src, 0, 0, 0, 0, $newW, $newH, $oldW, $oldH);
if ( $type == 'jpg' ) {
imagejpeg($new, 'blocks/img/gallery/thumbs/'.$filename);
} else if ( $type == 'png' ) {
imagepng($new, 'blocks/img/gallery/thumbs/'.$filename);
} else if ( $type == 'gif' ) {
imagegif($new, 'blocks/img/gallery/thumbs/'.$filename);
}
imagedestroy($new);
imagedestroy($src);
}
Comment puis-je modifier cela pour accomplir ce que je veux (pouces Carrés)?
Merci d'avance.
Vraiment sentir comme un
plz-send-me-the-code
question.OriginalL'auteur markf | 2010-04-21
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Luke Stevenson
Je n'ai pas assez de karma de commentaire sur la accepté de répondre (Lucanos') mais j'ai trouvé que la réponse ci-dessus a donné les barres noires sur le côté de la vignette.
Cet extrait de code (combinée avec la accepté de répondre) devrait copier les sections pertinentes de la src de l'image, sans sortir des limites du terrain et la production de barres noires. La vignette est toujours en place, comme pour la question d'origine.
Accepté de répondre a la moitié de l'image noir, mais c'est de travailler comme un charme.
OriginalL'auteur Sam Wan
Vous souhaitez travailler sur un décalage plutôt que d'une nouvelle largeur/hauteur de sorte que le nouvel échantillon reste en proportion, puis utilisez le décalage lors de la génération de la nouvelle image et lui donner une largeur fixe/hauteur afin qu'il récolte à un carré. Un exemple rapide qui ferait un 100x100 pouce (note: pas testé),
OriginalL'auteur Rich Adams
Cette version modifiée de la fonction de beaucoup travaillé pour moi
OriginalL'auteur Hector