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!
Un grand merci pour cela. Je paierais si je l'avais. :) –