Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: imagemagick

  1. #1

    imagemagick

    Ho installato su un sistema Centos ImageMagick in /usr/deposito/ImageMagick-6.3.2. Da riga di comando se scrivo:
    convert test.jpg -resize 120x60! test.bmp
    funziona tutto a dovere e la test.bmp viene creata. Ora io ho bisogno di utilizzare il tutto da php. Ho creato uno script converti.php in questo modo:
    <?php
    exec ("/usr/deposito/ImageMagick-6.3.2/convert test.jpg -resize 120x60! test.bmp");
    ?>
    Se lancio converti.php ottengo una pagina bianca e sul server la test.bmp non viene creata. Cosa sbaglio?

  2. #2
    Ho provato anche con exec("/usr/bin/convert test.jpg test.bmp"); in quanto ho visto che convert sta in /usr/bin. Ma neppure così funziona e la pagina rimane bianca senza restituire errori.
    Se può servire ho provato anche questo:

    passthru ("/usr/bin/convert test.jpg test.bmp",$risultato1);
    passthru ("/usr/deposito/ImageMagick-6.3.2/convert test.jpg test.bmp",$risultato2);

    che restituisce $risultato1 = 1 e $risultato2 = 127 (non conosco il significato di questi due risultati)

  3. #3
    ulteriore indicazione. Ho installato imagemagick anche in locale su sistema win-apache-phpe se eseguo
    <?php
    passthru ("convert.exe test.jpg test.bmp",$risultato3);
    ?>
    lo script si esegue correttamente, viene creata test.bmp e $risultato3 restituisce 0

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    un consiglio che dò sempre in questi casi è quello di provare da utente apache a lanciare da console il comando che vuoi sia eseguito in php, sono sicuro al 99.9% che è un problema di permessi.

    Finchè non si supera questo è inutile provare da php.


  5. #5
    per quale motivo stai usando le imagemagick che, molto spesso non sono presenti a favore delle gd?

    ti conviene molto più utilizzare il modulo gd2 di php (www.php.net/image) dagli un occhio

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Non sono d'accordo, se uno può, sul proprio server meglio usare le IM, che non devono ad esempio sottostare alla memoria utilizzata dal php (che spesso è limitata rispetto alla richiesta di risorse delle GD), inoltre le IM possono gestire molti formati che le gd non possono usare. Infine se non ricordo male con convert puoi ridimensionare le immagini senza preoccuparti delle proporzioni dell'immagine perchè le gestisce da solo.

    ciao

  7. #7
    Sono in accordo con gianiaz. Inoltre come da post, io debbo manipolare .bmp e .tiff e non credo che le gd siano in grado di farlo, per di più, quando riuscirò a farlo funzionare, con IM si ha un semplice accesso ad una infinità di possibilità non offerte dalle GD. Sempre per Geniaz, siccome non sono un drago di linux e poichè penso anche io che sia solo una questione di permessi, come faccio per lanciare da console il comando che voglio eseguito da php come utente apache? E inoltre dato che l'esecutivo 'convert' sta in/usr/bin come dovrei settare i permessi delle cartelle ed eventualmente del file 'convert' per farlo eseguire da php (che se ho capito bene verebbe eseguito con i permessi di apache)? Grazie

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Bhe se hai accesso in ssh i passaggi sono più o meno questi (tieni presente che quello che sto per incollare arriva da una ubuntu, quindi potrebbero esserci delle differenze)

    Lanciato il comando in grossetto vedo che l'utente è www-data
    codice:
    root@localhost:~# ps aux | grep apache
    root      5258  0.0  1.9  57772  8888 ?        Ss   Mar26   0:00 /usr/sbin/apache2 -k start
    www-data  9526  0.0  1.0  57908  4768 ?        S    07:35   0:00 /usr/sbin/apache2 -k start
    Ora controllo che www-data abbia una shell valida:


    codice:
    root@localhost:~# grep www-data /etc/passwd
    www-data:x:33:33:www-data:/var/www:/bin/bash
    La seconda parte in neretto indica che ho una shell, tu potresti anche trovarci /bin/false/, se mai edita il file con "nano" o con "vi" e cambia il valore.

    Una volta fatto questo da utente root:

    codice:
    root@localhost:~# su - www-data
    www-data@localhost:~$  whoami
    www-data
    Controllo per scrupolo, però secondo me i permessi sul comando non sono un problema:

    codice:
    www-data@localhost:~/$ ls -la /usr/bin/convert
    -rwxr-xr-x 1 root root 4680 2007-10-03 00:39 /usr/bin/convert
    I permessi infatti sono tutti a x, quindi non è quello il problema.

    Ora facciamo una prova con il comando, io credo che il problema possa dipendere anche dai permessi dei file che vuoi editare, oppure della directory dove vuoi scriverli, per esempio :

    codice:
    www-data@localhost:~$ convert logo.jpg logo.bmp
    convert: unable to open image `logo.bmp': Permesso negato.
    Controllo i permessi del logo:
    codice:
    www-data@localhost:~$ ls -la logo.jpg
    -rw-r--r-- 1 root root 13285 2008-04-20 09:57 logo.jpg
    e li cambio:

    codice:
     
    root@localhost:/var/www# whoami
    root
    root@localhost:/var/www# chown www-data\: logo.jpg
    root@localhost:/var/www# ls -la logo.jpg
    -rw-r--r-- 1 www-data www-data 13285 2008-04-20 09:57 logo.jpg
    root@localhost:/var/www#
    ora riprovo:

    codice:
    www-data@localhost:~$ convert logo.jpg logo.bmp
    convert: unable to open image `logo.bmp': Permesso negato.
    allora è la dir :P

    codice:
    www-data@localhost:~$ logout
    root@localhost:/var/www# mkdir testwww-data
    root@localhost:/var/www# chown www-data\: testwww-data/
    root@localhost:/var/www# su - www-data
    www-data@localhost:~$ cd testwww-data/
    www-data@localhost:~/testwww-data$ convert ../logo.jpg logo.bmp
    adesso ce l'ho fatta :P.

    Ora una prova che resta da fare è eseguire la stessa operazione con i comandi di php.

    codice:
    echo system  ( 'convert /var/www/logo.jpg /var/www/testwww-data/logo.bmp');
    e vedi se ti da errori.


  9. #9
    Originariamente inviato da gianiaz
    Non sono d'accordo, se uno può, sul proprio server meglio usare le IM, che non devono ad esempio sottostare alla memoria utilizzata dal php (che spesso è limitata rispetto alla richiesta di risorse delle GD), inoltre le IM possono gestire molti formati che le gd non possono usare. Infine se non ricordo male con convert puoi ridimensionare le immagini senza preoccuparti delle proporzioni dell'immagine perchè le gestisce da solo.

    ciao
    l'unico vantaggio è "scansarsi" il limite della memoria, ma: di solito i provider non le mettono a disposizione proprio per questo motivo

    Inoltre, scusami, ma gestire le proporzioni sono proprio l'ultimissimo dei pensieri dato che ci vogliono 3/4 righe di codice

    Originariamente inviato da maurizio54
    Sono in accordo con gianiaz. Inoltre come da post, io debbo manipolare .bmp e .tiff e non credo che le gd siano in grado di farlo, per di più, quando riuscirò a farlo funzionare, con IM si ha un semplice accesso ad una infinità di possibilità non offerte dalle GD. Sempre per Geniaz, siccome non sono un drago di linux e poichè penso anche io che sia solo una questione di permessi, come faccio per lanciare da console il comando che voglio eseguito da php come utente apache? E inoltre dato che l'esecutivo 'convert' sta in/usr/bin come dovrei settare i permessi delle cartelle ed eventualmente del file 'convert' per farlo eseguire da php (che se ho capito bene verebbe eseguito con i permessi di apache)? Grazie
    le bmp si, le tiff no, ma nel posto avevo letto solo di BMP e JPEG

    Inoltre devi sapere che, tranne se hai un dedicato o un virtual hosting, è possibile eseguire, con il safe mode attivato cosa che hanno tutti gli hoster, soltanto i file eseguibili in certe specifiche percorsi

    Comunque, io per esperienza ti continuo a sconsigliare le IM! Se devi fare qualcosa di serio, ovvero se le GD non bastano, usa nconvert che è PER DAVVERO un tool molto avanzato!

    Le IM sono lentissime su pagine A4 a 300DPI (dato che le hai in formato TIFF suppongo che siano scansioni ... per un software di archiviazione elettronica dei documenti dato che la legge impone l'utilizzo del formato G4 [o G3 ora non ricordo]) ci stavano anche un minuto mentre con nconvert bastavano una manciata di secondi (per farti capire perché ti continuo a sconsigliare le IM)

    http://pagesperso-orange.fr/pierre.g...cdownload.html

  10. #10
    Grazie per le risposte, domani provo quello che riguarda i permessi i vi faccio sapere. Ma sevolessi usare da php nconvert che mi hai consigliato, dove trovo una guidaa su come farlo? Tieni conto che io sono su di un server dedicato e quindi posso configurarlo a mio piacimento. Non ho ben capito come manipolare le bmp tramite le GD. Io sapevo che era possibile farlo solo su jpg, gif e png. Io ho la necessità di fare da tiff bmp solo dei resize per costruire prewiev e trasformare le suddette prewiev injpg per poterle mostrare in una finestra del browser

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.