Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [GD] imagecreatefromjpeg

    Premetto che mi sono appena messo a smanettare con le librerie GD per cui devo entrare ancora nella "logica" adatta.
    Come da manuale la funzione
    imagecreatefromjpeg() returns an image identifier representing the image obtained from the given filename
    chiedo a voi un chiarimento (per tutti i dubbi, spero). che cosa significa? o meglio cos'è questo image identifier?
    infatti se stampo il risultato della funzione sottostante con
    echo $MyImg;
    mi stampa:
    Resource id #1

    GRAZIE!

    Codice PHP:
    <?
    function LoadJpeg ($imgname) {
        
    $im imagecreatefromjpeg ($imgname); // Attempt to open 
        
    if (!$im) { // See if it failed 
            
    $im  imagecreate (15030); // Create a blank image 
            
    $bgc imagecolorallocate ($im255255255);
            
    $tc  imagecolorallocate ($im000);
            
    imagefilledrectangle ($im0015030$bgc);
            
    // Output an errmsg 
            
    imagestring ($im155"Error loading $imgname"$tc);
        }
        return 
    $im;
    }
    //header ("Content-type: image/pjpeg");
    $sImgPath 'img/sf_intestazione.jpg';
    // $fp = fopen ('http://localhost:81/imm/utils/showimage.php?action=show&id=1&tbl=foto_immobili', "w");
    $MyImg LoadJpeg($sImgPath);
    echo 
    $MyImg;
    ?>
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    per visualizzare l'immagine sul browser devi usare la funzione imagejpeg http://it2.php.net/imagejpeg assieme alla funzione header www.php.net/header.

    l'header dice al browser: "ehi, browser, guarda che sto per mandarti un'immagine", ed imagejpeg aggiunge "arrivooo".
    think simple think ringo

  3. #3
    http://it2.php.net/manual/it/function.imagejpeg.php

    devi usare questa funzione per creare fisicamente il file sul server o per restituirla al browser

  4. #4
    va bene,ma io ho bisogno di far visualizzare al browser (sono prove) un'immagine "rimodellata al volo", il problema si presenta se l'immagine è dentro al database.
    nel codice che segue il primo $sFilePath funziona, il secondo (commentato) no.
    Codice PHP:
    function LoadJpeg ($imgname) {
        
    $im imagecreatefromjpeg ($imgname); // Attempt to open 
        
    if (!$im) { // See if it failed 
            
    $im  imagecreate (15030); // Create a blank image 
            
    $bgc imagecolorallocate ($im255255255);
            
    $tc  imagecolorallocate ($im000);
            
    imagefilledrectangle ($im0015030$bgc);
            
    // Output an errmsg 
            
    imagestring ($im155"Error loading $imgname"$tc);
        }
        return 
    $im;
    }
    header ("Content-type: image/pjpeg");
    $sFilePath 'img/sf_intestazione.jpg';
    // $sFilePath = 'http://localhost:81/imm/utils/showimage.php?action=show&id=1&tbl=foto_immobili';
    $MyImg LoadJpeg($sFilePath);
    echo 
    imagejpeg($MyImg'',20); 
    qualche aiuto?
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  5. #5
    devi mettere il percorso non l'url

    poi, dove vuoi che venga visualizzata,
    codice:
    echo "<img src=\"http://localhost:81/imm/utils/showimage.php?action=show&id=1&tbl=foto_immobili\">";
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  6. #6
    non ci capiamo...so benissimo come visualizzare un'immagine da db.
    io voglio "prendere" l'immagine dal db,diminuirla di qualità e poi visualizzarne il risultato. Il fatto è che con
    $sFilePath = 'img/sf_intestazione.jpg';
    CI RIESCO

    MA CON
    // $sFilePath = 'http://localhost:81/imm/utils/showimage.php?action=show&id=1&tbl=foto_immobili';

    NULLA, mi da questo errore e poi il codice binario dell'immagine:



    Warning: imagecreatefromjpeg: Unable to open 'http://localhost:81/imm/utils/showimage.php?action=show&id=1&tbl=foto_immobili' for reading in e:\www\imm\prove.php on line 7

    ˙Ĝ˙à˙Ĝ˙à ecc.
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  7. #7
    pardon

    credo che non puoi far altro che creare un file temporaneo ed operare su quello
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  8. #8

    INFATTI

    ...sembra non si possa operare direttamente sullo stream del file.
    per cui ho risolto (parzialmente) con questa funzione che ho trovato nel manuale on-line, il problema però è che mi sputtana enormemente la qualità del file, anzi l'immagine diventa uno scarabocchio irriconoscibile:
    Codice PHP:
    function LoadJPEG ($imgURL) {
       
    ##-- Get Image file from Port 80 --##
       
    $fp fopen($imgURL"r");
       
    $imageFile fread ($fp3000000);
       
    fclose($fp);
       
    ##-- Create a temporary file on disk --##
       
    $tmpfname tempnam ("/temp""IMG");
       
    ##-- Put image data into the temp file --##
       
    $fp fopen($tmpfname"w");
       
    fwrite($fp$imageFile);
       
    fclose($fp);
       
    ##-- Load Image from Disk with GD library --##
       
    $im imagecreatefromjpeg ($tmpfname);
       
    ##-- Delete Temporary File --##
       
    unlink($tmpfname);
       
    ##-- Check for errors --##
       
    if (!$im) {
           print 
    "Could not create JPEG image $imgURL";
       }
       return 
    $im;
    }
    $imageData LoadJPEG('http://localhost:81/imm/utils/showimage.php?action=show&id=2&tbl=foto_immobili');
    header"Content-Type: image/jpeg");
    imagejpeg($imageData''100); 
    :master:
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

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.