Visualizzazione dei risultati da 1 a 6 su 6

Discussione: imagepng e tag <img>

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    residenza
    Brescia
    Messaggi
    81

    imagepng e tag <img>

    Vorrei fare qualcosa del genere... penso sia possibile ma non riesco a farlo funzionare...
    cioè.. sostituire nel tag img src="immagine.png" con una funzione.
    Riporto solo le parti di una classe essenziali per capire....
    Qualcuno ha qualche idea ?

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN "http://www.w3.org/TR/html4/strict.dtd"-->
    <html>
    <head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>MAIN</title>
    </head>
    <?php
    
    require "analog.php";
    $analog1 = new Analog(1);
    print '<body>';
    
    $analog1->create();
    
    ?>
    </body></html>
    Codice PHP:
    class  Analog {
        function 
    __construct($id) {
            
    $this->id $id;
        }
        function 
    create () {
            print 
    '<div id="analog'.$this->id.' ">';
            print 
    '<img>'.$this->draw().'</img>';
            print 
    '</div>'."\r\n";
        }
        function 
    draw () {
            
    header("Content-type: image/png");
            
    $img=imagecreatetruecolor(50,50);
            
    $white=imagecolorallocate($img,255,255,255);
            
    $black=imagecolorallocate($img,0,0,0);
            
    imagefilledrectangle($img,10,10,40,40,$black);
            return 
    imagepng($img);
            
    imagedestroy($img);
        }

    attualmente come output mi trovo l'immagine come se mancasse l'header:

    ‰PNG  IHDR22‘]æIDATX…íÁ1 õOm_ ø ~ ™±IEND®B`‚1

    in cosa erro?
    grazie a chiunque

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    probabilmente manca proprio l'header... dovrebbe bastare aggiungere allo script richiamato nel tag IMG l'istruzione header('content-type: image/png')...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    residenza
    Brescia
    Messaggi
    81
    Ciao Eyen, grazie per l'attenzione...
    ma nella prima riga della funzione draw() c'è proprio l'header....
    tu dove lo metteresti ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    stai mischiando un po' le cose: nel src del tag img va il "sorgente" della tua immagine
    codice:
    [img]<?php tua_funzione_img();?>[/img]
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    residenza
    Brescia
    Messaggi
    81
    Grazie andrea...
    ho provato anche così ma il risultanto rimane identico...

    Codice PHP:
    print '[img]'.$this->draw().'[/img]'
    altre idee?
    mi pare impossibile che non di possa generare una immagine da una funzione...
    ho anche cercato in giro ma non ho trovato nulla.
    grazie ancora.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    residenza
    Brescia
    Messaggi
    81
    Dato che nessuno ha avuto una risposta valida su come utilizzare il tag img, senza un url, ma con un contenuto enbedded, e dato che ho trovato la soluzione la sottopongo nel caso possa essere utile a qualcuno.
    ciao a tutti

    Codice PHP:
    class  Analog {
         ...
         ...
    function 
    create () {
         ...
         ...
         print 
    '[img]data:image/png;base64,'.$this->draw().'[/img]';
         ...
         ...
    }

    function 
    draw () {
         
    header("Content-type: image/png");
         
    $img=imagecreatetruecolor(50,50);
         ...
         ...
         
    ob_start();
         
    $img1=imagepng($img);
         
    $data ob_get_contents();
         
    ob_end_clean();
         return 
    base64_encode($data);


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.