2011-05-22 3 views
3

J'ai un petit problème de redimensionnement des images blob. Ce que j'ai trouvé c'est que je dois faire la taille et la largeur du BLOB mais parce que les gens téléchargent des images qui ne sont pas carrées, comment les redimensionner correctement?BLOB - Redimensionner PHP Image

Fondamentalement, je veux une largeur maximale de 300px;

mon code actuel est

$desired_width = 300; 
$desired_height = 300; 

$sth = mysql_query("SELECT photobase FROM userpictures WHERE id = '".$array[0]."'"); 

while($r = mysql_fetch_assoc($sth)) { 
     $blobcontents = $r["photobase"]; 

     $im = imagecreatefromstring($blobcontents); 
     $new = imagecreatetruecolor($desired_width, $desired_height); 

     $x = imagesx($im); 
     $y = imagesy($im); 

     imagecopyresampled($new, $im, 0, 0, 0, 0, $desired_width, $desired_height, $x, $y); 

     imagedestroy($im); 

     header('Content-type: <span class="posthilit">image</span>/jpeg'); 

     imagejpeg($new, null, 85); 

Répondre

3

Une méthode simple pour redimensionner une image en conservant les proportions de contraintes:

<?php 
// Constraints 
$max_width = 100; 
$max_height = 100; 
list($width, $height) = getimagesize($img_path); 
$ratioh = $max_height/$height; 
$ratiow = $max_width/$width; 
$ratio = min($ratioh, $ratiow); 
// New dimensions 
$width = intval($ratio*$width); 
$height = intval($ratio*$height); 
?> 
+0

Merci tellement tellement – RussellHarrower

+0

Qu'en est-blob auquel cas 'getimagesize ($ img_path) 'n'est pas la façon de faire qui nécessite un chemin de fichier, pas le contenu du fichier? – Tiny