Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357

    Aiuto - ImageMagick più PHP

    SALVE ragazzi.
    ho dei problemi con la ridimensione delle immagini e rinominazione tramite Imagemagick

    in pratica lo script analizza tutti i file nella cartella e poi li rinomina e ridimensiona tramite imagemagick (tramite comando exec) ma lo script non funziona, in più le immagini finiscono per rovinarsi e non si aprono più

    vi posto il codice sperando in un vostro aiuto
    Codice PHP:
    //explode capitolo
                    
    $for_directory explode(".",$_GET[id]);
                    
    $folder $for_directory[0];
                    
    $id_img $for_directory[1];
                    
                    
    //conf
                    
    $path_shank "/usr/local/bin/";
                    
    $estenzioni = array("jpg","jpeg","tiff","bmp","png","gif");    
                            
                                        
                    
    $directory "../scan/".$folder."/".$id_img."/";
                    
    //exec("convert /var/www/html/scan/1/1/02.png /var/www/html/scan/1/1/02.jpg");
                    //print_r($out);                
                    
                    
    if ($handle opendir($directory)){
                        while (
    $file readdir($handle)){
                            
    $ext strtolower(end(explode('.'$file)));                        
                            if(!
    in_array($ext,$estenzioni)){
                                
    //cancello file... mi urta XD
                                //@unlink($file);
                            
    }
                            else{
                                if (
    $file != "." $file != ".."$images[] = $file;
                            }    
                        }
                    }
                    
    closedir($handle);
                    
                    
    natcasesort($images);
                    
    $varibile_conto strlen(count($images));                
                    
                    function 
    getFileName($path)
                    {
                      
    $parts=pathinfo($path);
                      return 
    $parts;
                    }
                    
                    foreach(
    $images as $nu){
                        
    $number_now++;
                        
    $p strlen($number_now);
                        
                        
    $x getFileName($nu);                    
                        
    //echo $p." - ".$variabile_conto;
                        
    if($p == $varibile_conto){$new_image $number_now;}
                        else{
                            
    $c $varibile_conto-$p;
                            for(
    $j=1;$j<=$c;$j++){
                                
    $n.="0";
                            }
                            
    //echo"
    ";
                            
    $new_image = $n.$number_now;
                            unset(
    $n);
                        }
                        
                        
    $inizil_file = $directory.$nu;                    
                        
    $new_file = $directory.$new_image.".jpeg";

                        echo 
    $inizil_file." => ".$new_file."
    ";                    
                        
                        exec(
    $path_shank ."convert -resize 1000x1000".$inizil_file." ".$new_file);
                        //print_r(
    $out);
                        if(
    $x[extension] != "jpg"){
                            //unlink(
    $directory.$new_image.".".$x[extension]);
                        }
                    } 
    grazi in anticipo per l'aiuto
    ps. forse può essere utile l'hosting è godaddy

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Codice PHP:
    exec($path_shank ."convert -resize 1000x1000> ".$inizil_file." ".$new_file); 
    forse intendevi
    Codice PHP:
    exec($path_shank ."convert -resize 1000x1000\">\" ".$inizil_file." ".$new_file); 

  3. #3
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    grazie!!
    anche facendo cosi lo script non lavora.. mi restituisce l'errore 127

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    priova a passargli i path delle immagini originali/nuove completi. /var/www/html ... etc, al posto di com'e' adesso. E assicurati che sia tutto ok con i permessi di scrittura.

  5. #5
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    avevo anche provato questa soluzione senza avere successo pero

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Esegui questo codice subito dopo la tua riga di exec, e posta il risultato.
    Codice PHP:
    <?php
    $c 
    $v = array();

    $cbin exec("which convert",&$c);
    exec("$cbin -version",&$v);

    var_dump($c,$v);

    echo(
    $path_shank ."convert -resize 1000x1000\">\" ".$inizil_file." ".$new_file);
    echo 
    "
    \n"
    ;
    var_dump(is_readable($inizil_file),is_writable($new_file));

    ?>

  7. #7
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    il programmi mi riporta questo
    Codice PHP:
    array(0) { } array(0) { } /usr/local/bin/convert -resize 1000x1000">" 'scan/1/1/02.png' 'scan/1/1/1.jpeg'
    bool(falsebool(false) array(0) { } array(0) { } /usr/local/bin/convert -resize 1000x1000">" 'scan/1/1/101.jpg' 'scan/1/1/2.jpeg'
    bool(falsebool(false

  8. #8
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Il penultimo false ci dice che c'e qualche problema con i permessi/percorsi. Ti consiglio di controllarli attentamente, e nel dubbio, di usare quelli assoluti.
    Il codice:
    Codice PHP:
    var_dump(is_readable($inizil_file),is_writable($directory)); 
    deve restituirti sempre true. Se non lo fa, ripetere i controlli sui path, permessi.


    E fai anche un
    Codice PHP:
    <?php
    $c 
    = array();
    exec("/usr/local/bin/convert -version",&$c); 
    var_dump($c);
    ?>
    giusto per assicurarci che imagemagick c'e', e lo puoi eseguire

  9. #9
    Utente di HTML.it L'avatar di kakashi
    Registrato dal
    Feb 2005
    Messaggi
    357
    ho eseguito anche questo codice
    ora per i permessi ho tutti true
    soltanto su -version sul convert non mi da messaggi

    Codice PHP:
    bool(truebool(true) array(0) { } bool(truebool(true) array(0) { } 

  10. #10
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Ma ti da ancora errore 127 o roba del genere nel log?

    se tu fai un
    Codice PHP:
    $c = array(); 
    var_dump(exec("/usr/local/bin/convert -version",&$c));
    var_dump($c); 
    E se vedi solo stringhe vuote, da qualche parte (sullo schermo o nel file di log) dovresti ricevere qualche errore..

    A questo punto e' chiaro che il programma convert di imagemagick non si trova nella cartella /usr/local/bin, oppure php non ha i permessi necessari per eseguirla..

    Dovresti chiedere al tuo hoster il path giusto.

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.