freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Δυναμική υπογραφή με εικόνα


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » PHP Προγραμματισμός και εφαρμογές » PHP τα δικά μας scripts
Moderators:  PHP Moderators, Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα]      Bookmarks Tags: περιεχόμενοΕικόναδυναμική Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
defkalion


Μέλος από: 27 Μαρ 2007
Scripts: 1
Μηνύματα: 52


View users profile Visit posters website
portfolio twitter 
ΜήνυμαΣτις: 03 Δεκ 2007 23:41    Θέμα: Δυναμική υπογραφή με εικόνα
Περιγραφή θέματος: Δημιουργήστε μια υπογραφή που περιλαμβάνει δυναμικό περιεχόμενο
Απάντηση με παράθεση  Mark this post and the followings unread

Λοιπόν παίρνω αφορμή από ένα παρόμοιο τόπικ στην ίδια κατηγορία, για να σας δείξω πώς μπορείτε με πολύ απλό τρόπο να φτιάξετε μια υπογραφή με οποιαδήποτε εικόνα θέλετε ως βασικό background και δυναμικό περιεχόμενο από ένα απλό text αρχείο.

Δείτε δύο παραδείγματα εδώ:

1. Εικόνα μακρόστενη που "τραβάει" κινηματογραφικές ατάκες από ένα αρχείο txt, και έχουμε ανάγκη το κείμενό μας να οριοθετείται σε διαφορετικές διαστάσεις από αυτές της αρχικής μας εικόνας (πχ έχει περιθώρια πάνω και αριστερά, ενώ δεξιά έχει τη στάμπα που δε θέλουμε το κείμενό μας να καλύπτει):




2. Εικόνα που τραβάει ταξιδιωτικές ατάκες πάλι από txt αρχείο, μόνο που σε αυτήν εδώ την περίπτωση είναι εντελώς "στεγνό" το κείμενο, κολλημένο στα όρια της εικόνας μας:




Και στις δύο περιπτώσεις έχουμε την ανανέωση του περιεχομένου τους σε κάθε refresh φυσικά.

Πάμε να δούμε τί χρειαζόμαστε για να φτιάξουμε κάτι τέτοιο:

1. Πρόσβαση στον server μας.

2. Μια εικόνα σε οποιαδήποτε μορφή. Πχ random.png που είναι το background μας.

3. Ένα txt αρχείο (πχ random_quotes.txt), στο οποίο έχουμε γραμμένο το περιεχόμενο που θέλουμε να αλλάζει σε κάθε refresh. Προσοχή κάθε content που θέλουμε να εμφανίζεται κάθε φορά, το γράφουμε σε μία γραμμή. Δηλαδή πχ για το παράδειγμά μας το πρώτο, αν έχουμε 10 κινηματογραφικές ατάκες, θα έχουμε ένα txt αρχείο με 10 γραμμές.

4. Φτιάχνουμε ένα αρχείο php, το ονομάζουμε πχ quotes.php και βάζουμε μέσα αυτόν τον κώδικα:

κώδικας:
<?php
function ImageStringWrap($im, $font, $x, $y, $string, $color, $maxwidth)
{
   $fontwidth = ImageFontWidth($font);
   $fontheight = ImageFontHeight($font);

   if ($maxwidth != NULL) {
       $maxcharsperline = floor(($maxwidth-140) / $fontwidth);
       $string = wordwrap($string, $maxcharsperline, "\n", 1);
     }

   $lines = explode("\n", $string);
   while (list($numl, $line) = each($lines)) {
       ImageString($im, $font, $x, $y, $line, $color);
       $y += $fontheight;
     }
}
header("Content-type: image/png; charset=UTF-8");
$quotes = file("random_quotes.txt");
$string = trim ($quotes[array_rand($quotes)]);
$im = imagecreatefrompng("random.png");
$black = imagecolorallocate($im, 255, 255, 255);
$font = 'arial.ttf';
ImageStringWrap($im, 2, 10, 6, $string, $black, ImageSX($im));
imagepng($im);
imagedestroy($im);
?>


5. Πειράζουμε το .htaccess αρχείο του server μας και γράφουμε την εξής αλλαγή:

RewriteEngine on
RewriteRule ^quotes.png /quotes.php


Και είμαστε έτοιμοι. Πλέον όταν θα καλούμε το quotes.png ο server μας θα το μεταφράζει σε quotes.php και θα εμφανίζει την εικόνα με το περιεχόμενό της να αλλάζει.


6. Διορθώσεις/πειράγματα κειμένου όσον αφορά αποστάσεις από το περιθώριο κλπ:


Στη γραμμή :

$maxcharsperline = floor(($maxwidth-140) / $fontwidth);

ορίζουμε το πλάτος στο οποίο επιτρέπουμε το κείμενο να "απλώνεται"

ενώ στη γραμμή

ImageStringWrap($im, 2, 10, 6, $string, $black, ImageSX($im));

πειράζουμε την απόσταση του κειμένου από τα άλλα περιθώρια, το επάνω και το αριστερά δηλαδή.


Ελπίζω να σας χρησιμεύσει. Αν κάνετε κάποια εφαρμογή βάλτε την εδώ να τη δούμε.


Ξαναλέω ότι δεν είναι κώδικας που έχω χτίσει από το μηδέν. Αφορμή ήταν το παρόμοιο τόπικ εδώ στο freestuff που "ρούφαγε" δεδομένα από ένα φόρουμ, και μετά από λίγο διάβασμα και ψάξιμο βρήκα και τα υπόλοιπα. Άρα τα credits στο δημιουργό του αρχικού τόπικ για την ιδέα και τον αρχικό κώδικα, και στους χιλιάδες coders του internet που μοιράζονται τις γνώσεις τους.
cordis
Administrator, [F|H]ounder, [C|S]EO

Μέλος από: 09 Οκτ 1999
Βοηθήματα: 95
Νέα: 477
Templates: 1
Scripts: 2
Μηνύματα: 256+

Περιοχή: Greece
View users profile Visit posters website
blog cv flickr picasa facebook linkedin 
twitter friendfeed deviantART del.icio.us 
ΜήνυμαΣτις: 04 Δεκ 2007 00:47    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

ωραίο. εδώ http://www.freestuff.gr/forums/viewtopic.php?t=16662 είναι και η άλλη έκδοση του mrpc.

_________________
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » PHP Προγραμματισμός και εφαρμογές » PHP τα δικά μας scripts
Τώρα είναι 10 Δεκ 2016 08:48 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos