Ti posto tutti i file che uso io:
codice:
[img]thumb.php?blobId=1[/img]
thumb.php
codice:
<?
global $blobId;
if(!is_numeric($blobId))
die("blobId non valido");
include 'connect.inc.php';
$dbQuery = "SELECT blob_type, blob_data FROM file WHERE id_file = $blobId";
$result = mysql_query($dbQuery) or die("Couldn't get file list");
$fileType = @mysql_result($result, 0, "blob_type");
$fileContent = @mysql_result($result, 0, "blob_data");
header("Content-type: $fileType");
include 'resize.php';
$img_res = imagecreatefromstring($fileContent);
$new_img_res = resize_image($img_res, 60, 80);
unset($img_res);
print_image($new_img_res, 100);
unset($new_img_res);
?>
connect.inc.php -> File di connessione al db
codice:
<?
// parametri del database
$db_host = "localhost";
$db_user = "db_user";
$db_password = "db_password";
$db_name = "db_name";
mysql_connect($db_host, $db_user, $db_password)or die("Errore nella connessione: ".mysql_error());
mysql_select_db($db_name) or die("Errore nella selezione del database: ".mysql_error());
?>
resize.php -> Fa il resize dell'immagine
codice:
<?
function resize_image($img_res, $maxX, $maxY) {
$actualX=imagesx($img_res);
$actualY=imagesy($img_res);
$newX=$maxX;
$newY=$maxY;
$tmp_img_res = imagecreatetruecolor($newX, $newY);
$res = imagecopyresampled($tmp_img_res, $img_res, 0, 0, 0, 0, $newX, $newY, $actualX, $actualY);
return $tmp_img_res;
}
function save_image($img_res, $filename, $quality=80) {
imagejpeg($img_res, $filename, $quality);
}
function print_image($img_res, $quality=100) {
header('Content-Type: image/jpeg');
imagejpeg($img_res,NULL, $quality);
}
?>
Devi naturalmente modificare la query, i nomi delle variabili, e naturalmente le dimensioni che vuoi in resize.php a seconda dei nomi dei campi che hai nel tuo db, per il resto è tutto a posto.