Forum Flash, Actionscript, PHP e MySQL
ridimensionamento immagini in php

 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP
Precedente  Successivo 
Autore Messaggio
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto: ridimensionamento immagini in php
Inviato: 01.05.07 | 12:15
Rispondi citando

ciao, ho trovato questo codice in php ed ora lo sto sistemando, ho trovato degli errori però che nn riesco a correggere... mi potete dare una mano?
questa è la prima pag con i form e finora qui tutto ok
 
Codice:
<html>
<head>

<style>
body{font-family:verdana;font-size:12px}
table{font-family:verdana;font-size:12px}
h1{font-family:verdana;font-size:20px;font-weight:bold}
</style>
<title>Ridimensiona immagine</title>
</head>
<body>
<center>
<h1>Ridimensiona immagine</h1>

<!--MODIFICARE nome-script.php con il nome del file che avete creato-->
<form action="a.php" method="post" enctype="multipart/form-data">
<table border="1" cellpadding="10">

<tr>
<td><b>Immagine: (jpg o png)</b></td>
<td align="right"><input type="file" name="img" size="20"></td>

</tr>
<tr>
<td><b>Larghezza: (in pixel)</b></td>
<td align="center"><input type="text" name="width" size="5" value="150"></td>

</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="Ridimensiona"></td>

</tr>
</table>
</form>

</body>
</html>


la seconda pag è impostata così, il primo errore che ho riscontrato

Notice: Undefined index: width in c:\programmi\easyphp1-8\www\dvd_list\a.php on line 25
La larghezza deve essere un numero intero


qui l'avevo risolto temporaneamente mettendo un num fisso al posto della variabile... secondo errore

Notice: Undefined index: width in c:\programmi\easyphp1-8\www\dvd_list\a.php on line 25

Notice: Undefined index: img in c:\programmi\easyphp1-8\www\dvd_list\a.php on line 29
Errore nell’upload del file


 
Codice:
<?
# MODIFICARE le 4 variabili qui sotto con le impostazioni del vostro server e il nome del file (31 righe più giù) all’interno del form html

#ATTENZIONE: per funzionare lo script avrà bisogno che le cartelle qui sotto siano accessibili il scrittura, settate gli opportuni permessi

$imgpathbig "./images/"# path assoluto dove lo script appoggerà l’immagine che inviate

$imgurlbig "./images/"# url dell’immagine grande, se volete che questa venga visualizzata

$imgpathsmall "./images/"# path assoluto dove lo script creerà l’immagine ridimensionata

$imgurlsmall "./images/"# url dell’immagine piccola

/*
COMPATIBILITA’
$_FILES in 4.1.0, prima $HTTP_POST_FILES
is_uploaded_file, move_uploaded_file, in 4.0.3
rand, senza chiamata a srand in 4.2.0. Se inferiore aggiungere srand((double) microtime() * 1000000);
imagecreatetruecolor in 4.0.6
*/

#questo è un form essenziale per inviare allo script le immagini.

#Assegno alla variabile width il valore scritto nel form e controllo che sia un numero
$width $_POST["width"];
if(!
is_numeric($width)) { print("<center><b>La larghezza deve essere un numero intero"); exit; }

#Controllo se il file è stato inviato; controllo se il file è un immagine jpg o png e assegno alla variabile ext l’estensione giusta
if (!is_uploaded_file($_FILES["img"]["tmp_name"])) { print("<center><b>Errore nell’upload del file"); exit; }
if(
$_FILES["img"]["type"] == "image/jpeg") { $ext "jpg";
} elseif(
$_FILES["img"]["type"] == "image/png") { $ext "png";
} else { print(
"<center><b>L’immagine pu&ograve; essere solo jpeg o png"); exit; }

#Genero un nome per il file inviato casualmente, questo perchè se lo script viene utilizzato da più persone c’è il rischio che si operi sugli stessi files contemporaneamente.
#Se lo utilizzate per "uso personale" potete anche saltare. Mettete il commento (#) davanti alla riga qui sotto e toglietelo da quella successiva.
$nomefile rand(1100);
#$nomefile = $_FILES["img"]["name"];

#Definisco il path delle due immagini
$filebig $imgpathbig $nomefile "." $ext;
$filesmall $imgpathsmall "TN" $nomefile "." $ext;

#Sposto il file inviato dal form nella directory scelta e con il nome definito sopra
move_uploaded_file($_FILES["img"]["tmp_name"], $filebig) or die("<center>Errore durante l’upload del file");

#Genero l’immagine ridimensionata
function makethumb($name$thname$width) {
#Vedo se il file è jpg o png e creo un immagine di conseguenza
$data GetImageSize($name,$info);
switch (
$data[2]) {
case 
1#copy($name,$thname);
return;
break;
case 
2:
$im = @imagecreatefromjpeg($name);
break;
case 
3:
$im = @imagecreatefrompng($name);
break;

}
#Assegno alle variabili w e h rispettivamente la larghezza e l’altezza dell’immagine originale
$w=ImageSX($im);
$h=ImageSY($im);
#Creo un divisore per mantenere le proporzioni dell’immagine
$div $w $width;
#Calcolo l’altezza dell’immagine ridimensionata
$nh $h $div;
#Creo l’immagine ridimensionata
$ni=ImageCreatetruecolor($width,$nh);
ImageCopyResized($ni,$im,0,0,0,0,$width,$nh,$w,$h);
if(
$data[2] == 2ImageJPEG($ni,$thname,100);
if(
$data[2] == 3ImagePNG($ni,$thname,100);
}

#Richiamo la funzione
makethumb($filebig$filesmall$width);
#Cancello l’immagine grande, se volete mantenerla nella cartella che avete specificato sopra mettete un commento (#) davanti a questa riga
#unlink($filebig);
#Mostro l’immagine ridimensionata
?>

<html><head><title>Immagine ridimensionata</title>
<center>
Immagine piccola<br>
<img src="<?= $imgurlsmall ?>TN<?= $nomefile ?>.<?= $ext ?>" alt="Immagine ridimensionata">

<?
#Se volete, sotto l’immagine ridimensionata, posso farvi vedere anche l’immagine grande (se avete impostato in cima al file la variabile imgurlbig). Per farla visualizzare dovete togliere il commento dalla riga sotto e mettere il commento davanti a unlink($filebig), 8 righe sopra
print("<br><br>Immagine grande<br><img src=’$imgurlbig$nomefile.$ext’ alt=’Immagine grande’>");

?>

come li risolvo? grazie il anticipo
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Sponsor
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 01.05.07 | 16:05
Rispondi citando

Ciao mesk8,
che versione delle librerie GD e di PHP hai nel server?

Quei notice non sono veri errori, ma notifiche... ad esempio ti notifica che la variabile: $width non è definita.

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 01.05.07 | 18:04
Rispondi citando

sto lavorando in locale intanto...
ho easyPHP 1.8.0.1 e phpMyAdmin-2.7.0-pl2, intendevi questo per versioni?
cmq ho anche provato a fare degli echo del tipo echo $_POST["width"]; ma nn va
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 01.05.07 | 18:50
Rispondi citando

mmm Whistle

se utilizzi EasyPHP dovresti avere register_globals settato su off di default.

Comunque prova a controllare sul php.ini, che trovi cliccando con il destro sull'icona di EasyPHP (in tray) -> Configurazione -> PHP

nel file che si apre cerca: register_globals e controlla che sia settato su off.
 
Codice:
register_globals = off


.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 01.05.07 | 21:18
Rispondi citando

sì ce l'ho su off, ho riguardato a fondo i codici e c'erano alcune cose che nn erano proprio corrette tipo i tag <center> davano fastidio (li ho sostituiti con <div align="center">)... Ora riesco a controllare tutte le variabili dei form e sono riuscito a copiare l'immagine
quello che nn va ora è qui

 
Codice:
<?
#Genero l’immagine ridimensionata
function makethumb($name$thname$width) {
#Vedo se il file è jpg o png e creo un immagine di conseguenza
$data getimagesize($name,$info);
switch (
$data[2]) {
case 
1#copy($name,$thname);
return;
break;
case 
2:
$im = @imagecreatefromjpeg($name);
break;
case 
3:
$im = @imagecreatefrompng($name);
break;
}

#Assegno alle variabili w e h rispettivamente la larghezza e l’altezza dell’immagine originale
$w=imagesx($im);
$h=imagesy($im);
#Creo un divisore per mantenere le proporzioni dell’immagine
$div $w $width;
#Calcolo l’altezza dell’immagine ridimensionata
$nh $h $div;
#Creo l’immagine ridimensionata
$ni=imagecreatetruecolor($width,$nh);
imagecopyresized($ni,$im,0,0,0,0,$width,$nh,$w,$h);
if(
$data[2] == 2imagejpeg($ni,$thname,100);
if(
$data[2] == 3imagepng($ni,$thname,100);
}

#Richiamo la funzione
makethumb($filebig$filesmall$width);
?>

da questo punto in poi nn fa più nulla (ho già corretto alcune cose che nn andavano nella funzione), ma il problema persiste perchè nn mi crea l'immagine ridimensionata

Magari sono proprio le librerie GD che mi mancano...
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 02.05.07 | 11:08
Rispondi citando

ho guardato x le librerie GD e ce le ho...
cmq provando con uno script semplice x creare un'immagine del tipo:
 
Codice:
<?php
header
("Content-type: image/png");

// creo l'immagine
$img imagecreate(100150);

// colore di sfondo
$back imagecolorallocate($img255255255); // hex #FFFFFF 

// rettangolo pieno
$rectColor imagecolorallocate(187187187); // hex #BBBBB
imagefilledrectangle($img202080130$rectColor);

// stampa l'immagine
imagepng($img);
?>

come risultato da

L'immagine “http://127.0.0.1/dvd_list/librerie.php” non può essere visualizzata poiché contiene degli errori.

e nessuna immagine, l'errore dovrebbe essere nel $img = imagecreate(100, 150); ma nn capisco dove
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 02.05.07 | 11:44
Rispondi citando

mmm Whistle

qui manca il parametro $img :
 
Codice:
<?php
// rettangolo pieno
$rectColor imagecolorallocate(MANCA $img187187187); // hex #BBBBB
?>

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 02.05.07 | 13:42
Rispondi citando

grazie delle risp, ora che mi fai notare c'è anche un $back che viene creato ma nn viene richiamato da nessuna parte... e qst immagini poi dove vengono salvate? ho provato tante di quelle stringhe di codice ormai ma finora di immagini nn vedo neanke l'ombra... Crying or Very sad sob!
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 07.05.07 | 15:30
Rispondi citando

Eh si,
come stai scrivendo tu il code PHP, è lo script PHP la tua immagine (vedi: header("Content-type: image/png");)

Se vuoi creare fisicamente le immagini devi utilizzare uno dei seguenti metodi:

» imagecopy
» imagecopyresampled
» imagecopyresized

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 07.05.07 | 17:29
Rispondi citando

infatti io dovrei usare imagecopyresized (primo codice postato), l'ultimo script (si può dire script in PHP?) invece l'ho provato per vedere se riuscivo a creare in locale un'immagine e quindi almeno sapere che EasyPHP mi permette di ridimensionare e/o creare immagini... Il fatto è che com tutti i codici che ho provato non sono riuscito ad avere 1immagine, ho il dubbio quindi allora che il problema non sia nei codici, ma altrove... Mi basterebbe quindi ora avere un piccolo script (anche elementare) che so di certo che funziona, che se quindi da me nn dovesse andare sapere almeno dove andare a correggere...
Se invece ha esito positivo capire dove sbaglio e quindi correggo
a farla breve quindi:
_ o è settato male EasyPHP
_ o sbaglio io
aiutino?
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 07.05.07 | 19:32
Rispondi citando

Scusa mesk8,
era da parecchio che non usavo le GD.
 
Codice:
<?php

# dimensioni immagine
$height 100;
$width 100;

# creo l'immagine
$img imagecreate($width$height);

# colore
imagecolorallocate($img100100100);

# salvo l'immagine con nome: test.jpg
imagejpeg($img'test.jpg'100);

# distruggo l'immagine creata
imagedestroy($img);

?>

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 07.05.07 | 21:35
Rispondi citando

ok ho provato questo codice, come risultato ho:

Fatal error: Call to undefined function: imagecreate() in ***miofile***.php on line 8

ho quindi fatto un'altra prova aggiungendo in cima

 
Codice:
<?php
header
("Content-type: image/png");
?>


il risultato ora è

L'immagine “***miofile***.php” non può essere visualizzata poiché contiene degli errori.

è sbagliato qualche settaggio nelle librerie GD che ho?
ho fatto quindi qualche ricerca su internet trovando questo sito Introduzione_alla_libreria_GD, dice di scrivere per assicurarsi di disporre delle librerie GD

 
Codice:
<?php
phpinfo
();
?>


a me xo pare di averle, ma magari mi sbaglio...
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 08.05.07 | 01:02
Rispondi citando

Come ti pare di averle?
Hai abilitato l'estensione da EasyPHP?

...e poi, se con i codice precedenti le visualizzavi, le GD ci sono di sicuro.

Comunque facendo il phpinfo() vedi se sono abilitato o meno.

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 08.05.07 | 08:39
Rispondi citando

partito!!!! wow, mi ha fatto sudare xò...
avevo sbagliato una piccola configurazione di easyphp
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio ridimensionamento di immagini savio_c ActionScript & Server Side 12 17.02.06 | 12:30 Leggi gli ultimi messaggi
savio_c
Nessun nuovo messaggio Gallery, problema ridimensionamento i... mesk8 ActionScript & Server Side 3 11.11.06 | 22:59 Leggi gli ultimi messaggi
dioz
Nessun nuovo messaggio ridimensionamento immagini, problemi ... mesk8 PHP 4 22.05.07 | 19:58 Leggi gli ultimi messaggi
mesk8
Nessun nuovo messaggio problema di ridimensionamento p4r4n0|c ActionScript & Server Side 1 04.08.05 | 12:36 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio Ridimensionamento SWF da html sant0 Flash Generale 7 29.08.09 | 10:51 Leggi gli ultimi messaggi
Coach



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Non puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005