Visualizzazione risultati 1 fino 5 di 5

Discussione: scritta su immagine con php

  1. #1
    Guest

    Predefinito scritta su immagine con php

    Salve, ho un problema con la scrittura di un valore su un'immagine con php.
    Il codice è il seguente:
    Codice PHP:
    <?php


    $url
    ="index.php";
    $file= file_get_contents($url);
    $text= strip_tags(str_replace('"', "",$file));

    $size = 14;
    $angle = 0;
    $x = 238;
    $y = 144;

    $img = imagecreatefromjpeg("credit-card.jpg");
    $color = imagecolorallocate($img, 0, 0, 0);

    $font = 'Arial.ttf';
    imagettftext($img, $size, $angle, $x, $y, $color, $font, $text);

    header('Content-type: image/jpeg');
    imagejpeg($img);

    imagedestroy($img);


    ?>
    Il mio problema è che l'immagine viene mostrata, però non viene scritto nulla...
    Ho provato anche ad usare al posto di "file_get_contents()" require(), ma non ho risolto nulla.
    Qualcuno mi può dare qualche suggerimento? Grazie!

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La causa più probabile è che imagettftext fallisca. Leggi la documentazione per farti un'idea di cosa possa andare storto, e controlla meticolosamente il valore restituito dalla funzione.

    Altre possibilità sono:
    • il testo da scrivere è vuoto
    • la posizione in cui scrivere non è corretta
    • il percorso del font è sbagliato


    Un'osservazione: inserire il testo di un'intera pagina web in un'immagine non è qualcosa che viene fatto normalmente. Assicurati che sia veramente ciò che vuoi fare.

    I suggerimenti che do più spesso:


  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    La causa più probabile è che imagettftext fallisca. Leggi la documentazione per farti un'idea di cosa possa andare storto, e controlla meticolosamente il valore restituito dalla funzione.

    Altre possibilità sono:
    • il testo da scrivere è vuoto
    • la posizione in cui scrivere non è corretta
    • il percorso del font è sbagliato


    Un'osservazione: inserire il testo di un'intera pagina web in un'immagine non è qualcosa che viene fatto normalmente. Assicurati che sia veramente ciò che vuoi fare.
    Grazie per la risposta. Ho controllato nuovamente la documentazione che mi hai linkato e ho letto i commenti degli utenti (che mi hanno praticamente salvato).
    A quanto pare nella documentazione non è riportato, ma un utente afferma che alcuni host hanno delle configurazioni differenti sugli url per i font (a quanto pare anche altervista) e affermava che aveva risolto inserendo
    ./
    prima del nome del font se contenuto nella stessa cartella. Effettivamente ha funzionato, infatti ora la scritta mi appare.

    Il problema che però adesso ho è che il primo carattere che viene mostrato è un rettangolo (come se ci fosse un carattere che non viene riconosciuto, benchè nell'output del php sorgente non sia presente nessun carattere all'inizio.
    L'indirizzo del file in questione è il seguente: http://rssdebbe.altervista.org/cc/cc1.php
    Potrebbe essere un problema di codifica?
    Ultima modifica di rssdebbe : 17-09-2019 alle ore 18.15.48

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Potrebbe essere un problema di codifica?
    Sì, sembra probabile. Potresti assicurarti che tutti i file e gli script coinvolti abbiano codifica UTF-8, a meno che tu non abbia motivazioni specifiche per usare una codifica differente.

    Dovresti anche verificare che il file da cui stai cercando di leggere non contenga caratteri "speciali" o non stampabili. Spesso succede, per esempio, quando si incolla in un file testuale un contenuto copiato da editor come Word.

    I suggerimenti che do più spesso:


  5. #5
    Guest

    Thumbs up

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Sì, sembra probabile. Potresti assicurarti che tutti i file e gli script coinvolti abbiano codifica UTF-8, a meno che tu non abbia motivazioni specifiche per usare una codifica differente.

    Dovresti anche verificare che il file da cui stai cercando di leggere non contenga caratteri "speciali" o non stampabili. Spesso succede, per esempio, quando si incolla in un file testuale un contenuto copiato da editor come Word.
    Ho controllato e tutti i file (in mio possesso) sono codificati i utf8, l'unico di cui non sono a conoscenza è la sorgente dei dati, la quale è un csv esportato da google fogli, il quale va a reperire il valore presente nelle celle da me richieste. Quello purtroppo non ho idea della codifica che ha.
    Ho comunque risolto inserendo il seguente codice:
    Codice PHP:
    $rimuovi = 3;
    $text = substr($text, $rimuovi);
    Praticamente ciò che va a fare è eliminare i primi 3 caratteri dal testo importato dal file_get_contents(), in questo modo vendono rimossi i "caratteri invisibili" presenti nel file originale.
    Spero che possa servire anche a qualcun'altro. Grazie mille per il supporto

Regole di scrittura

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