2009-08-12 3 views
1

J'ai actuellement un script qui va tirer dans le contenu d'image à partir d'une base de données et, en utilisant createimagefromstring(), retourne un redimensionnée (rééchantillonnée) image pour l'affichage:redimensionnement de l'image à partir d'une base de données avec PHP

$max_width = 170; 

// Get the image 

@mysql_connect('host', 'user', 'pass'); 
@mysql_select_db('db'); 

$query = "SELECT `thumbnail_contents`, `thumbnail_mimetype` FROM `videos` WHERE video_number = '$video_number'"; 
$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_object($result); 

// Resize if pic bigger than $max_width 
// Set the header 
header('Content-type:' . $row->thumbnail_mimetype); 

// Get original size of image 
$image = imagecreatefromstring($row->thumbnail_contents); 
$current_width = imagesx($image); 
$current_height = imagesy($image); 

// Set thumbnail width 
$widths = array($current_width, $max_width); 
$new_width = min($widths); 

// Calculate thumbnail height from given width to maintain ratio 
$new_height = $current_height/$current_width*$new_width; 

// Create new image using thumbnail sizes 
$thumb = imagecreatetruecolor($new_width,$new_height); 

// Copy original image to thumbnail 
imagecopyresampled($thumb,$image,0,0,0,0,$new_width,$new_height,imagesx($image),imagesy($image)); 

// Show thumbnail on screen 
$show = imagejpeg($thumb); 

// Clean memory 
imagedestroy($image); 
imagedestroy($thumb); 

Actuellement, ce script fonctionne pour la plupart des vignettes et les affiche à l'écran comme vous le souhaitez. Cependant, quand je télécharge une image avec une grande largeur, disons plus de 1000px, il est stocké dans la base de données, mais le script ne montre pas l'image rééchantillonnée.

Pour résoudre les problèmes, j'ai vérifié la base de données, ainsi que print_r'd la sortie de la requête. Tout semble être casher ... Quelqu'un pourrait me dire ce qui pourrait causer un tel comportement? Toute aide ou conseil est grandement appréciée!

Répondre

2

$ 5 indique que PHP manque de mémoire. Vérifiez vos journaux d'erreur PHP.

+0

Un grand merci pour cela. Je paierais si je l'avais. :) –

Questions connexes