Salve a tutti!
Ho inserito un'immagine in un db, come faccio per ricavarne la dimensione (altezza-larghezza)?
Ho provato con il getimagesize() ma non mi funziona col codice dell'img su db
Salve a tutti!
Ho inserito un'immagine in un db, come faccio per ricavarne la dimensione (altezza-larghezza)?
Ho provato con il getimagesize() ma non mi funziona col codice dell'img su db
Guybrush Threepwood
La soluzione migliore sarebbe quella di memozzare questi dati durante l'inserimento dell'immagine, o nel caso questo non fosse possibile puoi salvare la stessa come file temporaneo, e successivamente usare la funzione getimagesize().
think simple think ringo
si quella del file temporaneo l'avevo già provata... ma è lenta se le immagini sono tante.
provo ad acquisire subito i dati quando le inserisco
Guybrush Threepwood
... si pone il problema però di come acquisire i dati di altezza/larghezza anche nell'acquisizione senza far passare l'immagine da una cartella fisica sul server ...
Guybrush Threepwood
oook! tutto a posto
$tmpName = $_FILES['userfile']['tmp_name'];
list($width, $height, $type, $attr) = getimagesize($tmpName);
Guybrush Threepwood
Ci siamo quasi... ho ancora un problemino.
L'immagine visualizzata è un rettangolo nero (ma delle dimensioni giuste)
Mi sa che non copia dentro il codice dell'immagine
facendo echo $dest_image; ritorna Resource id #5codice:$maxx = $_GET["maxx"]; $maxy = $_GET["maxy"]; $source_image = $row['fdata']; $width=$row['fwidth']; $height=$row['fheight']; $percent1 = $width / $maxx; $percent2 = $height / $maxy; $percent = max($percent1,$percent2); $new_eight = round($height /$percent); $new_width = round($width /$percent); $dest_image = imagecreatetruecolor($new_width, $new_eight); imagecopyresampled ($dest_image, $source_image, 0, 0, 0, 0, $new_width, $new_eight, $width, $height); header("Content-type: image/jpeg"); imagejpeg($dest_image); imagedestroy($dest_image);
Guybrush Threepwood
ok credo di aver capito dove sta il problema... ma non so dove risolvere
In pratica nel codice originale il jpg è create con imagecreatefromjpeg() mentre nel mio lo prendo direttamente da database.
Ho provato a crearlo dal imagecreatefromjpg già dall'inizio con
ma così facendo non lo crea propriocodice:$data1=imagecreatefromjpeg($_FILES["file1"]["tmp_name"]);
Guybrush Threepwood
A me le operazioni sui file contenuti nella cartella tmp (ossia dove finiscono gli upload) hanno sempre dato "problemi", per esempio uno script per invio di email con allegato in upload non funziona con il file temporaneo, ma ha necessità che il file sia spostato all' "interno" del sito (e poi cancellato)... forse il tuo server soffre (o meglio, fa soffrire te) delle stesse (o simili) limitazioni.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
devi usare la funzione:
http://it2.php.net/manual/it/functio...fromstring.php
per recupare l'immagine dal db.
think simple think ringo
Ok... ma ho ancora lo stesso problema
se faccio una echo $dest_image mi da Resource id #6.codice:$maxx = $_GET["maxx"]; $maxy = $_GET["maxy"]; $source_image = ($row['fdata']); $source_image=imagecreatefromstring($source_image); $width=$row['fwidth']; $height=$row['fheight']; $percent1 = $width / $maxx; $percent2 = $height / $maxy; $percent = max($percent1,$percent2); $new_eight = round($height /$percent); $new_width = round($width /$percent); $dest_image = imagecreatetruecolor($new_width, $new_eight); imagecopyresampled ($dest_image, $source_image, 0, 0, 0, 0, $new_width, $new_eight, $width, $height); echo $dest_image;
se aggiungo all'inizio il base64_decode mi da Resource id #5.
Non riesco a capire cosa possa essere, perchè le dimensioni se le ricalcola precise.... ma non ricrea l'immagine corretta
P.S. se faccio una ECHO dell'IMAGECOPYSAMPLED mi ritorna 1
Guybrush Threepwood