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

    Output grezzo dell'immagine binaria

    Ciao,

    sto cercando di usare delle librerie grafiche per generare l'immagine di un grafico.
    Le librerie si appoggiano alle GD/GD2.

    Di norma la istruzioni delle GD stanno in un file immagine.php a parte che vien poi incluso tramite il tag <img>.

    Codice PHP:
    ...
    [
    img]immagine.php[/img]
    ... 
    A me torna scomodo e stavo cercando di inviare direttamente i dati in binario al tag HTML.
    Vorrei fare così:

    Codice PHP:
    ...
    [img]<?php imgObject->RenderImage(); ?>[/img]
    ...
    Solo che così mi dice che
    Warning: Cannot modify header information - headers already sent by (output started at /web/htdocs/www.westsystems.it/home/includes/startPage.php:84) in ....
    e stampa una serie incomprensibile di caratteri anziché l'immagine in binario.

    Non capisco cosa cambi tra far mandare le intestazioni dell'immagine da una funzione in un file php separato, e farle mandare da una funzione richiamata direttamente.


    Sapete come evitare il warning ed ottenere correttamente l'interpretazione dei dati binari?

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230

    Re: Output grezzo dell'immagine binaria

    Originariamente inviato da pictor

    Non capisco cosa cambi tra far mandare le intestazioni dell'immagine da una funzione in un file php separato, e farle mandare da una funzione richiamata direttamente.
    - il browser, per interpretare l'immagine come immagine deve ricevere gli header giusti
    - uno script non puo' inviare degli header se ha gia' inviato del contenuto

    semplice, no?

  3. #3
    Mmmmh, mi sembra limitativo.

    Personalmente avrei lasciato l'interprete libero di ricevere illimitate intestazioni, lasciando al programmatore la scelta.

    Nel mio case avrebbe fatto comodissimo: il browser, trovandosi a interpretare il sorgente di un'immagine avrebbe tranquillamente preso le intestazioni e renderizzato l'immagine, senza stare ad effettuare una nuova chiamata HTTP.

    Non capisco se è un limite di PHP o se è proprio la mia logica che fa acqua.....

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da pictor
    Mmmmh, mi sembra limitativo.

    Personalmente avrei lasciato l'interprete libero di ricevere illimitate intestazioni, lasciando al programmatore la scelta.

    Nel mio case avrebbe fatto comodissimo: il browser, trovandosi a interpretare il sorgente di un'immagine avrebbe tranquillamente preso le intestazioni e renderizzato l'immagine, senza stare ad effettuare una nuova chiamata HTTP.

    Non capisco se è un limite di PHP o se è proprio la mia logica che fa acqua.....
    php non c'entra, e' cosi' che funziona il protocollo http

    per la cronaca: se vuoi una pagina con contenuti multipart, potresti utilizzare gli data uri's, tipo <img src="data:image/png;base64, ..... con il binario dell'immagine in base64.
    Ma non te lo consiglio

  5. #5
    Originariamente inviato da pictor Non capisco se è un limite di PHP o se è proprio la mia logica che fa acqua.....
    io non capisco perchè invece ti devi complicare la vita: metti nel src l'immagine.php che ritorna l'output della tua immagine formato da dati grezzi+header corretti... semplice...piuttosto che bizzarrie di output grezzo nel src che poi, per magia, un browser dovrebbe capire sia che è un'immagine sia che tipo di immagine sia per poter fare il rendering...

    altrimenti l'immagine la crei, la salvi nel file system, e poi metti la url relativa nel src... infondo, molti script che renderizzano grafici (se non tutti) fanno così
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Hihihi era solo curiosità.
    Mi son ritrovato ad aver inizializzato la classe del grafico direttamente nella pagina e stavo cercando di far appunto quello che avevo richiesto.
    Più che altro ricordo che in ASP feci qualcosa del genere anni fa, sempre con base64, ma non ricordavo più niente.
    E la testardaggine della curiosità si era impossessata di me.

    Il passo immediatamente successivo è stato fare appunto un file separato e tutto ha funzionato perfettamente.

    Grazie delle precisazioni ragazzi. Sempre affidabilissimi

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.