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

Discussione: Immagini incomplete?

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58

    Immagini incomplete?

    Ciao a tutti, ho il seguente codice PHP che mostra un'immagine jpeg. Si tratta di un'immagine continuamente aggiornata sul server, che ogni tanto arriva leggermente "corrotta", come quella che allego. In realtà il file .jpg non è corrotto, può cioè essere aperto da qualsiasi programma (come anche io lo sto caricando qui e verrà visualizzato), semplicemente il caricamento non è andato perfettamente a buon fine e quindi l'immagine presenta dei "buchi". Veniamo al dunque: questo script riesce ad "accorgersi" se l'immagine è di questo tipo, e infatti in tal caso non mostra nulla. Volevo chiedervi: in quali righe si ritrova questa funzione? visto che lo script individua tali immagini, vorrei anche fare in modo che vengano eliminate. Grazie.

    Schedule_20180120-163536.jpg


    Codice PHP:
    $nome_immagine="webcam.jpg";         // file contenente l'immagine

    $nome_testo="testo.txt";         // file contenente le scritte


    $testo_sinistra "Roma E.U.R. - Vista OVEST - romaeurmeteo.it - T $temp °C - UR $hum% - Vento $velvento km/h da $grvento - Pioggia $prec mm, $rrate mm/h";


    $fp fopen($nome_testo,"r")

      or die(
    "impossibile aprire il file testo.txt.");

    //$testo_sinistra=fgets($fp,100);         // nella prima riga la scritta allineata a sinistra

    $testo_destra=fgets($fp,100);         // nella seconda riga la scritta allineata a destra

    if ( $testo_destra "data" )

      {

      
    setlocale(LC_TIME,"it_IT");

      
    $testo_destra=strftime ("%a %d %b %Y %H:%M:%S"filemtime($nome_immagine));

      }

    fclose($fp);


    header("Content-type: image/png");

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

    header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");

    header("Cache-Control: no-store, no-cache, must-revalidate");

    header("Cache-Control: post-check=0, pre-check=0"false);

    header("Pragma: no-cache");


    header("Content-type: image/jpeg");


    $im  imagecreatefromjpeg($nome_immagine);

    //$black = imagecolorallocate($im, 0, 0, 0);

    //$white = imagecolorallocate($im, 255, 255, 255);

    $colore_barra imagecolorallocate($im10255);      // colore della barra formato RGB

    $colore_testo  imagecolorallocate($im255255255);   // idem per testo

    $x=imagesx($im);

    $y=imagesy($im);


    $font "VeraBd.ttf";

    $size 17;                     // dimensione del testo

    $altezza_barra 38;                  // dimensione della barra



    imagefilledrectangle($im0$y-$altezza_barra$x-1$y-1$colore_barra);


    $bbox imagettfbbox ($size0$font$testo_sinistra);

    $dy  = (($bbox[1] - $bbox[7]) / 2);

    imagettftext($im$size05$y-($altezza_barra 2) + $dy 1$colore_testo$font
    $testo_sinistra);

     
    $bbox imagettfbbox ($size0$font$testo_destra);

    $dx  = ($bbox[2] - $bbox[0]);

    imagettftext($im$size0$x-5-$dx$y-($altezza_barra 2) + $dy 1$colore_testo$font$testo_destra);


    $info getimagesize($nome_immagine);                  //carica immagine  


    //$logo2 = imagecreatefrompng("logo.png") ;   //carica 2° logo - h/= cartella - caput-frigoris.png = nome del file e estensione.png


    //imagecopy($im, $logo2, 10, $info[1]-990, 0, 0, 90,90); //(-,-,0 numero di pixel da sx verso dx,$info[1]-x la "x" detrae pixel dal basso verso l'alto, 171,37=dimensione 2°logo)posizione 2°logo(1400=x,800=y)


    //$logo = imagecreatefrompng("banner.png") ;   //carica 2° logo - h/= cartella - caput-frigoris.png = nome del file e estensione.png


    //imagecopy($im, $logo, 1700, $info[1]-1070, 0, 0, 210,100); //(-,-,0 numero di pixel da sx verso dx,$info[1]-x la "x" detrae pixel dal basso verso l'alto, 171,37=dimensione 2°logo)posizione logo(1400=x,800=y)


    imagejpeg($im);

    imagejpeg($im);

    imagedestroy($im); 

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58
    up!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58
    volevo comunque sapere se c'è un modo, con PHP, per poter riconoscere immagini incomplete come quella che ho allegato. Ho trovato questa discussione che parla proprio del mio caso, ma non vi è una soluzione: https://stackoverflow.com/questions/...mage-integrity

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusa, ma hai verificato se webcam.jpg è corretta (non presenta zone corrotte)?
    Se il file è corrotto di suo, devi vedere altrove dove sta il problema

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58
    Quote Originariamente inviata da boots Visualizza il messaggio
    Scusa, ma hai verificato se webcam.jpg è corretta (non presenta zone corrotte)?
    Se il file è corrotto di suo, devi vedere altrove dove sta il problema
    Nessun file è corrotto. Semplicemente la webcam, quando fa l'upload delle immagini, talvolta non riesce a completarlo e gli spazi vuoti vengono colmati con del grigio o simili, come ad esempio in questo caso:
    Schedule_20180205-083406.jpg
    tale immagine non è corrotta, ma leggibilissima. Vorrei riuscire, con PHP, ad individuare le immagini che presentano questo tipo di errore, se possibile. Non so se questa informazione è ricavabile dall'EXIF.

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Per "corrotta" intendevo proprio la presenza di vuoti. Mi chiedevo se è dovuto alla webcam o alla manipolazione tramite php.
    Se è proprio la webcam non è qui che devi chiedere.
    Non credo che puoi fare qualcosa con EXIF, ti servirebbe qualche algoritmo di riconoscimento immagini.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58
    Quote Originariamente inviata da boots Visualizza il messaggio
    Per "corrotta" intendevo proprio la presenza di vuoti. Mi chiedevo se è dovuto alla webcam o alla manipolazione tramite php.
    Se è proprio la webcam non è qui che devi chiedere.
    Non credo che puoi fare qualcosa con EXIF, ti servirebbe qualche algoritmo di riconoscimento immagini.
    no, php sicuramente non c'entra. E' colpa della connessione che, non avendo molto upload, a volte provoca questo errore. Nel link che ho postato viene detto "Usually half grey images (especially JPEG) are sign of a file that is not complete (headers are ok, so you don't have problem with you getimagesize) but the JPEG does not end with a 0xFF 0xD9". Mi chiedevo se questo può essere utile.

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ma se l'immagine è incompleta, imagecreatefromjpeg() dovrebbe darti errore. Ho provato con una tua immagine che hai postato ed in effetti mi da:

    codice:
    Warning: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data: premature 
    end of data segment in ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    58
    Quote Originariamente inviata da boots Visualizza il messaggio
    Ma se l'immagine è incompleta, imagecreatefromjpeg() dovrebbe darti errore. Ho provato con una tua immagine che hai postato ed in effetti mi da:

    codice:
    Warning: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data: premature 
    end of data segment in ...
    strano, a me non dà nessun errore

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    evidentemente non hai abilitato una adeguata seglazione d'errore.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.