Qualcuno saprebbe gentilmente spiegarmi perchè non riesco a creare delle thumb con le librerie gd?
Sono graditi anche esempi pratici...grazie
Qualcuno saprebbe gentilmente spiegarmi perchè non riesco a creare delle thumb con le librerie gd?
Sono graditi anche esempi pratici...grazie
Prima di rispondere alla tua domanda te ne faccio una io..
Lo script che genera l'immagine è contenuta in un pagina con altro codice o sta in una pagina a parte (contenente SOLO lo script per 1 immagine)?
è mista di codice html e php...
purtroppo sei troppo vago devi essere piu preciso..
E' un server locale o altervista? se non è altervista ti sei assicurato che GD sono abilitate? Hai verificato la condizione che dice allo ?
Hai fatto una ricerca sul forum? Ci sono centinaia di esempi pratici sparsi per il forum!Sono graditi anche esempi pratici...grazie
//THUMB.PHP
<?
include('functions.php');
while ($entry = $d->read())
{
if((substr($entry,-4,strlen($entry))=='.jpg')or(substr($entry,-4,strlen($entry))=='.gif'))
{
$immagine=$entry;
$titolo=substr($entry,0,-4);
$oggi= getdate();
$giorno = $oggi['mday'];
$mese = $oggi['mon'];
$anno = $oggi['year'];
$ore=$oggi['hours'];
$minuti=$oggi['minutes'];
$secondi=$oggi['seconds'];
$data = $anno .'-'. $mese .'-'. $giorno .' '. $ore .':'. $minuti .':'. $secondi;
$querySelect=mysql_query('SELECT * FROM immagini WHERE immagini.immagine="'.$immagine.'"');
if(!$querySelect || (mysql_numrows($querySelect) < 1))
{
$counter++;
$sorg="../images/".$immagine;
$dest="../images_pic/".$immagine;
create_thumbnail($sorg,$dest,100,75,100,false);
}
}
}
$d->close();
?>
//FUNCTIONS.PHP
<?
function check_folder($folder){
if(file_exists($folder)){
if (!is_dir($folder)){
mkdir($folder);
}
} else {
mkdir($folder);
}
}
//-------------------------------------------------------------------------------------------------------------
// funzioni: creazione thmbnail
//-------------------------------------------------------------------------------------------------------------
function create_thumbnail($src,$dest,$maxWidth,$maxHeight,$ quality=100, $prop=false) {
if($src!=''){
$checkjpg=$this->check_image_type($src,2);
$checkgif=$this->check_image_type($src,1);
if (($checkjpg!="")&&($checkgif!="")) {
unlink($src);
} else {
$this->image_createThumb($src,$dest,$maxWidth,$maxHeight ,$quality, $prop);
}
}
}
function check_image_type($pathname,$deftype) {
list($width, $height, $type, $attr) = getimagesize($pathname);
if ($type==$deftype)
return("");
else
return("Errore: non è del tipo corretto");
}
function image_createThumb($src,$dest,$maxWidth,$maxHeight, $quality=100, $prop) {
if (file_exists($src) && isset($dest)) {
// path info
$destInfo = pathInfo($dest);
// image src size
$srcSize = getImageSize($src);
if ($srcSize[0]>$maxWidth | $srcSize[1]>$maxHeight){
// image dest size $destSize[0] = width, $destSize[1] = height
$srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio
$destRatio = $maxWidth/$maxHeight;
$propW=$srcSize[0]/$maxWidth;
$propH=$srcSize[1]/$maxHeight;
if($propH>$propW){
$maxHeight=$maxHeight;
$maxWidth=($srcSize[0]*$maxHeight)/$srcSize[1];
}else{
$maxWidth=$maxWidth;
$maxHeight=($srcSize[1]*$maxWidth)/$srcSize[0];
}
// path rectification
if ($destInfo['extension'] == "gif") {
$dest = substr_replace($dest, 'jpg', -3);
}
// true color image, with anti-aliasing
$destImage = imageCreateTrueColor($maxWidth,$maxHeight);
imageAntiAlias($destImage,true);
// src image
switch ($srcSize[2]) {
case 1: //GIF
$srcImage = imageCreateFromGif($src);
break;
case 2: //JPEG
$srcImage = imageCreateFromJpeg($src);
break;
case 3: //PNG
$srcImage = imageCreateFromPng($src);
break;
default:
return false;
break;
}
// resampling
imageCopyResampled($destImage, $srcImage, 0, 0, 0, 0,$maxWidth,$maxHeight,$srcSize[0],$srcSize[1]);
// generating image
switch ($srcSize[2]) {
case 1:
case 2:
imageJpeg($destImage,$dest,$quality);
break;
case 3:
imagePng($destImage,$dest);
break;
}
if ($prop==true){
$insert = imageCreateFromJpeg($dest);
if (imagesx($insert)>imagesy($insert)){
$max_side=imagesx($insert);
//orizzontale
$or='o';
} else {
$max_side=imagesy($insert);
//verticale
$or='v';
}
$background = imageCreateTrueColor($max_side,$max_side);
$back = ImageColorAllocate($background, 125,125,125);
imagefill($background,0,0,$back);
if ($or=='v'){
$start= (($max_side-imagesx($insert))/2);
imagecopymerge($background,$insert,$start,0,0,0,im agesx($insert),imagesy($insert),100);
} else {
$start= (($max_side-imagesy($insert))/2);
imagecopymerge($background,$insert,0,$start,0,0,im agesx($insert),imagesy($insert),100);
}
imagejpeg($background,$dest,100);
}
}else{
//copio l'immagine dalla cartella ordginin alla cartella di destinazione
copy($src,$dest);
}
}
}
?>
ho risolto...grazie a tutti