ridimensionare un'immagine

yok

Utente Attivo
3 Set 2009
62
0
0
Stresso ancora per uno script che dovrebbe, oltre a caricare un'immagine in una cartella("foto"), da un <input type="file">, dovrebbe dicevo creare anche una thumb della stessa immagine nella cartella"thumb".

La prima parte dello script viene eseguita correttamente, la seconda, quella di ridimensionamento, no.

Ecco il codice completo, la parte in rosso non funziona:

<?php

$file_temp=($_FILES['userfile']['tmp_name']);

$upload_dir = ($_SERVER["DOCUMENT_ROOT"] . "/foto");

$filename=$_FILES['userfile']['name'];

$pathToImage='foto/';

$pathToThumb='thumb/';

$thumbWidth=100;

$types = array("image/jpeg","image/pjpeg","image/png");

do {
if (is_uploaded_file($file_temp)) {

if ($_FILES['userfile']['size']>200000) {

echo "Il file non deve superare i 400Kb";
break;}

if(!@in_array($_FILES['userfile']['type'], $types)){

echo"formato file non consentito";
break;}

if (file_exists('foto/'.$_FILES['userfile']['name'])) {

echo "nome foto già esistente";
break;}

if (move_uploaded_file($_FILES['userfile']['tmp_name'], 'foto/'.$_FILES['userfile']['name'])) {

function createSingleThumb($filename, $pathToImage, $pathToThumb, $thumbWidth) {

if (!($img = imagecreatefromjpeg( "{$pathToImage}{$filename}" )))
$img = imagecreatefrompng( "{$pathToImage}{$filename}" );
$width = imagesx( $img );
$height = imagesy( $img );

$width2 = $thumbWidth;
$height2 = floor( $height * ( $thumbWidth / $width ) );

$tmpimg = imagecreatetruecolor( $new_width, $new_height );

imagecopyresized( $tmpimg, $img, 0, 0, 0, 0,$width2, $height2, $width, $height );

imagejpeg( $tmpimg, "$pathToThumb.$filename" );
}

echo "<p>caricamento effettuato</p>";
break;}

}
} while(false);

?>

Ciao, grazie!
 

yok

Utente Attivo
3 Set 2009
62
0
0
grazie! Ci stò ancora lavorando sulle dritte che mi avete inviato. Una domanda: per attivare le librerie GD, in wamp, basta spuntare la voce php_gd2 da php "extensions"? Perchè non c'è verso che mi legga correttamente SmartImage
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per attivare le librerie GD, in wamp, basta spuntare la voce php_gd2 da php "extensions"?
credo di si
comunque prima di lavorare tanto verifica che il tuo host abbia le librerie
es. su aruba:
windows: librerie inattive e non attivabili
linux: librerie attive
 

yok

Utente Attivo
3 Set 2009
62
0
0
l'host accetta le librerie. Ho provato a riconfigurare il mio codice sulla base del link
"https://www.mrw.it/php/articoli/galleria-immagini-php-gd2-mysql_828_2.html"

ma, come il precedente, sembra filare tutto liscio, non mi dà errori e non mi salva una cippa come miniature. Bhò, è due settimane che configuro e riconfiguro codici per ste miniature ma non riesco a ricavarci nulla.....ma è veramente possibile ricavare delle miniature con php??
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
.....ma è veramente possibile ricavare delle miniature con php??
si, io lo faccio utilizzando il metodo dell'articolo, anzi non creo solo le tumb, ma ridimensiono anche l'originale alle misure che mi interessano
(ho fatto un maketumb_02)
 

LaKanka

Utente Attivo
29 Ago 2008
166
0
0
Ho avuto anch'io dei problemi con le thumb...
questo è il codice che utilizzo se ti può essere utile:
la funzione
PHP:
function createThumbnail($img, $imgPath, $suffix, $newWidth, $newHeight, $quality)
{
  // Open the original image.
  $original = imagecreatefromjpeg("$imgPath/$img") or die("Error Opening original");
  list($width, $height, $type, $attr) = getimagesize("$imgPath/$img");

  // Resample the image.
  $tempImg = imagecreatetruecolor($newWidth, $newHeight) or die("Cant create temp image");
 // imagecopyresized($tempImg, $original, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height) or die("Cant resize copy");
imagecopyresampled ($tempImg, $original, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height)or die("Cant resize copy");
  // Create the new file name.
    $newName = 'vetrina/'.date('ymdhis').'.jpg';//vetrina è la directory dove vado a salvare la thumb
  // Save the image.
 imagejpeg($tempImg, $newName, 100)or die("Cant save image");
  // Clean up.
  imagedestroy($tempImg);
  return $newName;
}
la creazione della thumb
PHP:
$new = createThumbnail($path, "upload_img", "thumb", 90, 90, 100);
//path è il nome dell'immagine originale
//upload_img è la directory dove si trova l'immageine originale
come vedi in una sola riga di codice crei la thumb:p
 

yok

Utente Attivo
3 Set 2009
62
0
0
niente ragazzi, grazie lo stesso.
Per me è mission impossible e non ho tempo per poterci stare ancora su, affido il lavoro a terze parti.
L'unica cosa che sono riuscito a fare è stato caricare le immagini dentro una cartella e basta. riuscire a ridurle a thumb non mi ha mai generato errori ma lo script non è mai stato davvero eseguito

alla prossima
Ciao!
 

yok

Utente Attivo
3 Set 2009
62
0
0
ah, a proposito, ma non esiste qualche risorsa a pagamento, on-line, dove sia possibile inviare uno script non funzionante ed avere indietro il codice corretto e pronto all'uso?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ah, a proposito, ma non esiste qualche risorsa a pagamento, on-line, dove sia possibile inviare uno script non funzionante ed avere indietro il codice corretto e pronto all'uso?

Aspetta prima di pagare (per quello che vuoi basta chiedere un preventivo ad un qualsiasi sviluppatore professionista).
Hai provato ad eseguire lo script in locale?
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Lo script postato da LaKanka, a meno di qualche piccola modifica, sembra funzionare perfettamente. Non capisco i problemi che accusi.
 

yok

Utente Attivo
3 Set 2009
62
0
0
Lo script per ora gira solo in locale.
Chiaro che non sono un grande genio di php, quindi magari basterebbe ben poco per far girare lo script che a me non gira(sono altre le cose che girano...), però adattando i vari codici postati non riesco a stanare il ragno dal buco. E non credo sia molto costruttivo incollare tutte le prove che ho fatto, anche perchè ho perso il conto....

Alla prossima. Magari a furia di impazzire con sti codici riuscirò anch'io a dare un contributo al forum. Adesso come adesso non ci capisco (quasi) un ca...volo

Ciao!
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
mi posti la porzione di direttive del tuo php.ini relativamente alle GD?
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Questa è la dichiarazione di una funzione che non viene richiamata da nessuna parte, per questo non gira mai...

PHP:
	function createSingleThumb($filename, $pathToImage, $pathToThumb, $thumbWidth) {
		if (!($img = imagecreatefromjpeg( "{$pathToImage}{$filename}" )))
			$img = imagecreatefrompng( "{$pathToImage}{$filename}" );
		$width = imagesx( $img );
		$height = imagesy( $img );

		$width2 = $thumbWidth;
		$height2 = floor( $height * ( $thumbWidth / $width ) );

		$tmpimg = imagecreatetruecolor( $new_width, $new_height );

		imagecopyresized( $tmpimg, $img, 0, 0, 0, 0,$width2, $height2, $width, $height );

		imagejpeg( $tmpimg, "$pathToThumb.$filename" );
	}
 

yok

Utente Attivo
3 Set 2009
62
0
0
Ciao Eliox,
intendi questo?

[gd]
; Tell the jpeg decode to libjpeg warnings and try to create
; a gd image. The warning will then be displayed as notices
; disabled by default
;gd.jpeg_ignore_warning = 0

Io uso Wamp e ho abilitato l'estensione php_gd2 da php extensions.

Ora mi restituisce tutta questa sfilza di errori:


Warning: imagecreatefromjpeg(foto/74024.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\gallery\down.php on line 74

Warning: imagecreatefrompng(foto/74024.jpg) [function.imagecreatefrompng]: failed to open stream: No such file or directory in C:\wamp\www\gallery\down.php on line 75

Warning: imagesx(): supplied argument is not a valid Image resource in C:\wamp\www\gallery\down.php on line 76

Warning: imagesy(): supplied argument is not a valid Image resource in C:\wamp\www\gallery\down.php on line 77

Warning: Division by zero in C:\wamp\www\gallery\down.php on line 80

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\wamp\www\gallery\down.php on line 82

Warning: imagecopyresized(): supplied argument is not a valid Image resource in C:\wamp\www\gallery\down.php on line 84

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\gallery\down.php on line 86
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
allora il problema può essere uno solo, sono sbagliati i percorsi alle immagini
 

yok

Utente Attivo
3 Set 2009
62
0
0
Esatto Eliox!
Alla fine si era ridotto ad un problema di percorsi e di un paio di apici di troppo.
Avevo anche già trovato a chi dare in affidamento il codice per mettermelo a posto, così ho risparmiato qualche spicciolo.
Grazie di cuore
alla prossima
Ciao!

PS.
Se potesse tornare utile a qualcuno, prima o poi, ecco lo script completo: (le cartelle utilizzate si chiamano "foto" e "thumbs" con sottocartella "foto")



<?php

$file_temp=($_FILES['userfile']['tmp_name']);


$upload_dir = ($_SERVER["DOCUMENT_ROOT"] . "/foto");

$filename=$_FILES['userfile']['name'];

$pathToImage='foto/';

$pathToThumb='thumbs/';

$thumbWidth=100;

$types = array("image/jpeg","image/pjpeg","image/png");

do {
if (is_uploaded_file($file_temp)) {

if ($_FILES['userfile']['size']>400000) {

echo "Il file non deve superare i 400Kb";
break;}

if(!@in_array($_FILES['userfile']['type'], $types)){

echo"formato file non consentito";
break;}




if (file_exists('foto/'.$_FILES['userfile']['name'])) {

echo "nome foto già esistente";
break;}

$num_foto=count(glob('foto/*.*'));




if (!move_uploaded_file($_FILES['userfile']['tmp_name'], 'foto/'.$_FILES['userfile']['name'])) {
echo "<p><b>ATTENZIONE!</b><br />Errore nel caricamento dell'immagine!!<br /><br /> File <b>non</b></p>";
break;
}


$nome_nuovo="foto".$num_foto.".jpg";
$old="foto/".$_FILES['userfile']['name'];
$new="foto/".$nome_nuovo;
rename($old, $new);
}

} while(false);


function createSingleThumb($new, $pathToImage, $pathToThumb, $thumbWidth) {
if (!($img = imagecreatefromjpeg( "{$new}" )))
$img = imagecreatefrompng( "{$new}" );
$width = imagesx( $img );
$height = imagesy( $img );

$width2 = $thumbWidth;
$height2 = floor( $height * ( $thumbWidth / $width ) );

$tmpimg = imagecreatetruecolor( $width2, $height2 );

imagecopyresized( $tmpimg, $img, 0, 0, 0, 0,$width2, $height2, $width, $height );

imagejpeg( $tmpimg, $pathToThumb.$new );
}

createSingleThumb($new, $pathToImage, $pathToThumb, $thumbWidth);

?>
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
lieto di averti fatto risparmiare :) Il collega che ha perso il lavoro non sarà altretanto contento :rolleyes:
 
Discussioni simili
Autore Titolo Forum Risposte Data
M ridimensionare un'immagine per ottenere una thumbnail PHP 4
helpdesk ridimensionare immagine da hd con php PHP 8
helpdesk ridimensionare immagine PHP 9
P Ridimensionare immagine PHP 1
L problema nel ridimensionare un immagine... Classic ASP 2
S ridimensionare una immagine con javascript Javascript 0
A [WordPress] Ridimensionare immagini preview della fotogallery WordPress 8
A Ridimensionare immagini in PHP PHP 6
marino51 non riesco a caricare un allegato percgè non riesco a ridimensionare la finestra Supporto Mr.Webmaster 0
braccobaldo [illustrator CC] come ridimensionare lo spessore di una traccia selezionata Webdesign e Grafica 1
otto9due Funzione per ridimensionare div in base alla risoluzione schermo.. Javascript 5
Z Script per aprire video youtube sia apre a schermo intero e poi ridimensionare in automatico Javascript 1
M ridimensionare le immagini PHP 2
C Ridimensionare le immagini Javascript 20
M Frame noresize [Era: Frame non che non si può ridimensionare] HTML e CSS 1
metalgemini Ridimensionare i DIV con contenuto variabile HTML e CSS 1
A Foto da ridimensionare Photoshop 5
V ridimensionare larghezza forma + aumento dimensione caratteri Flash 1
S ridimensionare pannello scelta HTML e CSS 0
M ridimensionare immagini al volo ASP.NET 1
M [ridimensionare html+flash] Javascript 0
max1850 Dreamweaver: ridimensionare i campi testo Webdesign e Grafica 1
S Ridimensionare Immagini online PHP 8
M Script per ridimensionare immagini PHP 0
W ridimensionare una finestra del browser HTML e CSS 2
S Ridimensionare un Frame HTML e CSS 1
S Ridimensionare un Frame Javascript 0
F ridimensionare automaticamente Javascript 1
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
gara1 inserire immagine di sfondo in canvas Javascript 0
T Dividere un'immagine in 3 parti orizzontali e salvarle separatamente Photoshop 2
W Immagine come maschera photoshop Photoshop 1
L Ultima immagine Windows e Software 0
A Immagine decentrata con sfondo trasparente Photoshop 0
A Scontornare immagine di bassa qualità. Photoshop 2
B Selezionare un'immagine e salvare la selezione Photoshop 3
F Immagine come fosse selezione attiva Photoshop 1
Y Percorso assoluto file immagine HTML e CSS 9
K Come posso usare un'immagine al posto di un bottone? HTML e CSS 2
M Upload immagine con javascript problemi con FormData() Javascript 1
M Visulizzare immagine con php PHP 8
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
L Come caricare un'immagine in Canvas dinamicamente Javascript 0
R Cambiare il nome dell'immagine dopo caricamento ftp HTML e CSS 0
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
Y Come caricare e visualizzare un'immagine PHP 0
S Testo scrolla su immagine che cambia HTML e CSS 0
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
R Caricamento immagine su cartella remota + mysql PHP 3

Discussioni simili