Visualizzazione risultati 1 fino 6 di 6

Discussione: [PHP] disegno diverso su server diversi

  1. #1
    Guest

    Predefinito [PHP] disegno diverso su server diversi

    Con Apache sul mio PC il disegno che faccio tramite PHP ha le "candele bianche" effettivamente bianche. La stessa pagina eseguita su AV mi visualizza le "candele bianche" non proprio bianche... www.analisitecnica.altervista.org/b0.PNG su AV , mentre sul mio PC :
    www.analisitecnica.altervista.org/b1.PNG
    E' come se il disegno del rettangolo bianco disegnato sopra la barra verticale(primo oggetto ad essere disegnato) su AV non venisse ricoperta ma usasse una certa trasparenza. Cosa sto sbagliando ?


    Scusate il sistema barbaro ma non sono riuscito in altro modo a fornire le immagini d'esempio.

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Evidentemente la versione delle librerie GD che hai sul pc è diversa da quella qui su AV.
    Però addirittura che qui non riempe.. strano forte...
    Ma lo script php l'hai sviluppato tu o ne usi uno pronto?

    la funzione sospetta di funzionamento diverso dovrebbe essere imagefilledrectangle()
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    Guest

    Predefinito

    Lo script l'ho sviluppato io. Le istruzioni incriminate sono :
    Codice:
    					if ($candele == "c") {							
    						if ($qchi < $qape) { 
    							imageFilledRectangle($immagine, ($x1 - 2), $yb1, ($x1 + 2), $y1, $rosso);	
    							imageRectangle($immagine, ($x1 - 2), $yb1, ($x1 + 2), $y1, $nero);				
    						}
    						else {					
    							imageFilledRectangle($immagine, ($x1 - 2), $yb1, ($x1 + 2), $y1, $bianco);
    							imageRectangle($immagine, ($x1 - 2), $yb1, ($x1 + 2), $y1, $nero);
    						}
    					}
    Il bianco l'ho creato cosi :
    Codice:
    	$bianco = imageColorAllocate($immagine, 255, 255, 255);
    Il rosso mi pare che riempia, il bianco no.
    La versione sul mio pc e' : GD Version bundled (2.0.28 compatible)
    Su AV mi pare la stessa : GD Version bundled (2.0.28 compatible)

    Di diverso vedo , da me :FreeType Version 2.1.9 , riga che e' in piu' rispetto ad AV

  4. #4
    Guest

    Predefinito

    up : qualche idea?

  5. #5
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    BINGO!

    Ho trovato!
    Ovviamente non spiega bene perché sul tuo PC sì e su AV non fungeva, però calcola che è bundled -stessaversione- COMPATIBLE.. perciò evidentemente possono esserci delle reali differenze di implementazione.
    Comunque andiamo al sodo:
    la soluzione è scritta proprio nel prezioso (primo) commento esterno nel manuale PHP sulle gd, qui:
    http://it2.php.net/manual/it/functio...ngle.php#17216
    (il commento più in basso)
    che recita:
    Important quirk to note:
    While imagerectangle will allow you to use a different order of your coordinates (such as bottom-left to upper-right), imagefilledrectangle will only work correctly if you use top-left to bottom-right as indicated in the docs.
    Ovvero tradotto:
    Importante stranezza da notare:
    Mentre imagerectangle permette di ribaltare l'ordine delle coordinate degli angoli (per es. dal basso-sinistra all'alto-destra), imagefilledrectangle funzionarà correttamente solo usando l'ordine dall' alto-sinistra al basso destra come indicato nella documentazione.

    Dunque ti funziona strano perché evidentemente non badi che la prima coord y ($yb1) debba avere sempre un valore MINORE di $y1, ok?
    In altre parole evidentemente le candele bianche vengono sempre disegnate dal basso verso l'alto, mentre lui esige sempre dall'alto verso il basso.
    Chiaro?

    Ho fatto anche una prova su uno script (direttamente su AV) con box disegnati nei due sensi e infatti quello dal basso verso l'alto è risultato con riempimento trasparente.
    Ciao
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  6. #6
    Guest

    Predefinito

    Hai centrato in pieno la soluzione. Complimenti.
    Ho invertito i valori di Y ed ora funziona correttamente.
    Devo attribuirmi la colpa di non aver consultato il manuale ufficiale , ma di avere utilizzato dei tutorial superficiali.
    Grazie ancora.
    Ciao.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •