Newsgroup: it.comp.www.php
Titolo: imagemagik

ciao a tutti.
sto cercando qualche funziona che mi permetta di creare un immagine2
resized, il tutto sul server.
ho trovato imagemagik, ma installando ho notato che mi funziona su
windows in C. ho sentito che c'e' pure la versione PHP, ma nn riesco a
capire cosa devo installare.
pf qualcuno mi puo' dare qlke consiglio in merito?
grazie siete sempre dei guru!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
se ti bastano le GD usa quelle
ciao
-- 
"20060207: buongiorno italia, buongiorno maria.
con gli occhi pieni di malinconia"

grazie ora ho trovato questo script che mi permette di ridimensionare
l'immagine.
pero' non me la salva su disco, ma mi crea uno streaming. 
mi sapresti dire come posso fare per salvare l'immagine?
<?php
// The file
$filename = 'test.jpg';
// Set a maximum height and width
$width = 200;
$height = 200;
// Content type
header('Content-type: image/jpeg');
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);
if ($width && ($width_orig < $height_orig)) {
   $width = ($height / $height_orig) * $width_orig;
} else {
   $height = ($width / $width_orig) * $height_orig;
}
// Resample
$image_p 	= imagecreatetruecolor($width, $height);
$image 		= imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height,
$width_orig, $height_orig);
// Output
imagejpeg($image_p, null, 100);
?> 


 capire cosa devo installare.
Imagemagik non è una funzione del PHP, ma un programma a linea di comando
che gira sia su Windows che su *nix.
Siccome PHP può eseguire delle istruzioni (DOS per Windows, da console per
*nix) puoi farlo utilizzando l'istruzione
http://it.php.net/manual/en/function.exec.php
Il comando imagemagic per il tuo lavoro è il seguente:
convert immagine1 -resize 50% immagine2
Sostituisci i nomi "immagine1" e "immagine2" con i tuoi file, utilizza poi
la percentuale che preferisci. Il file verrà salvato dove desideri
indicandolo nel nome della seconda immagine.
Tieni presente che la sintassi sotto DOS è diversa da quella *nix, in
particolare se usi dei path nei nomi dei file (slash per DOS e backslash
per *nix).
Stai attento alla sicurezza perché qualcuno potrebbe inserire dei nomi
arbitrari per sovrascrivere dei file o fare altri danni. Usa sempre nomi
controllati e verificati dal PHP, con path statici, e mai nomi passati
dalla pagina web.
Byez!
-- 
By Davide "Design" Muzzarelli












 
imagejpeg($image_p, "path/nomeimmagine.jpg", 100);


> imagejpeg($image_p, "path/nomeimmagine.jpg", 100);
SEI UN MITO!!!
grazie mille!!! e buon week-end!


Solid Snake wrote:

Perché complicarsi la vita con 29 righe di codice per uno script che non ti
serve quando ne basta 1 di codice che ti serve?
Quello script è lento, consuma memoria ed è come scrivere la divina commedia
per dire "ciao".
Ad ogni modo prendi l'output di imagejpeg() e lo salvi su di un file, poi
elimini la riga inutile del "// content type"
Non ti basta lo script da una linea?


 Non ti basta lo script da una linea?
beh ma la parte sopra devo tenerla, altrimenti come fa a settare la
dimensione?


 dimensione?
Non ci siamo capiti, lo script da una linea che ti propongo si basa sul
comando exec:
exec(convert ' . $pathImmagine1 . ' -resize ' . $percentuale . '% ' .
$pathImmagine2);
L'immagine 1 ($pathImmagine1) viene scalata in base a $percentuale e salvata
come $pathImmagine2.
La percentuale si occupa da sola di impostare la dimensione che desideri se
devi restringerle tutte della stessa quantità. Altrementi usi i pixel o i
centimetri (come preferisci).
Tutto qua, semplice, veloce, leggero.
Lo script che hai trovato fà una cosa, ma non è detto che sia l'unico modo
per fare ciò che chiedi, se non specifichi meglio quale risultato finale
vuoi ottenere.


 Tutto qua, semplice, veloce, leggero.
imagemagick e' installato sul server?
il mio hosting consente l'esecuzione di comandi di sistema?
(
http://us2.php.net/manual/it/features.safe-mode.php#ini.disable-functions
)
cosi' giusto per fare l'avvocato del diavolo :p
("il mio hosting ha una versione di php con supporto per le gd?")