Hi all,
I have a dynamic image that picks out data from a dynamically created .line file.
showimage.php(5) -
<?php
-
include("linesfile.php5");
-
$linesDataFile = new DataFile("data.line");
-
-
//$image = ImageCreate(660,240); // create the image canvas
-
$image = ImageCreateFromPNG("background.png");
-
$blue = ImageColorAllocate($image, 200, 200, 255); // prepare some blueness
-
$black = ImageColorAllocate($image, 0, 0, 0); // ... and whiteness
-
-
$cur_line_y = 63; // This stores how far down the image the current line will print
-
$cur_line_x = 24; // This stores how far across the image the current line will print
-
$pagecharwidth = 75; // this is the maximum length of the line before it wraps;
-
$lineheight = 15; // This is how much to move down to print the next line
-
$pagelinelimit = 12; // This is the maximum number lines of text that can be displayed
-
-
ImageFill($image, 0, 0, $blue); // fill the canvas
-
-
//ImageString($image, 3, 15, $cur_line_y, trim(stripslashes($wordwrapped[0])), $black);
-
-
$numberOfLines = $pagelinelimit;
-
-
-
-
for($i=0;$i<$numberOfLines;$i++) {
-
$data = $linesDataFile->getReverseIterate();
-
if (count($data)==0) continue;
-
$name = "[" . $data[0] . "] ";
-
$color = $data[1];
-
$font = $data[2];
-
$line = $data[3];
-
-
$line = $name . $line;
-
-
-
-
//ImageString($image, 2, $cur_line_x, $cur_line_y, trim($line), getColor($color));
-
-
-
imagettftext($image,10,0,$cur_line_x,$cur_line_y,getColor($color),getfont($font),trim($line));
-
-
$cur_line_y += $lineheight;
-
-
}
-
-
function getColor($color) {
-
global $image;
-
-
switch($color) {
-
case "black" :
-
return ImageColorAllocate($image, 0, 0, 0);
-
case "white" :
-
return ImageColorAllocate($image, 255, 255, 255);
-
case "blue" :
-
return ImageColorAllocate($image, 0, 0, 205);
-
case "red" :
-
return ImageColorAllocate($image, 255, 0, 0);
-
case "yellow" :
-
return ImageColorAllocate($image, 255, 255, 0);
-
case "green" :
-
return ImageColorAllocate($image, 0, 255, 0);
-
case "orange" :
-
return ImageColorAllocate($image, 255, 127, 36);
-
case "aqua" :
-
return ImageColorAllocate($image, 0, 255, 255);
-
default:
-
return ImageColorAllocate($image, 255, 255, 255);
-
-
}
-
}
-
-
function getfont($font) {
-
global $image;
-
global $font;
-
-
switch($font) {
-
case "fixedsys" :
-
return "fixedsys.ttf";
-
case "Courbd" :
-
return "courbd.ttf";
-
case "arial" :
-
return "arialbd.ttf";
-
case "timesnr" :
-
return "timesbd.ttf";
-
case "calibri" :
-
return "calibrib.ttf";
-
case "comicsans" :
-
return "comicsans.ttf";
-
case "palab" :
-
return "palab.ttf";
-
default:
-
return "courbd.ttf";
-
}
-
}
-
-
-
header("Content-Type: image/png"); // tell the browser what we're gonna give it
-
ImagePng($image); // paint the image in browser
-
ImagePng($image, "./chatbox.png"); //export as png file
-
ImageDestroy($image); // clean up resources
-
?>
the php in Index.php -
<?php
-
include("linesfile.php5");
-
$filename = "data.line";
-
set_magic_quotes_runtime(0);
-
if ($_POST['submit']) {
-
// grab the inputted text
-
$text = stripcslashes($_POST['input'] . "\n");
-
$username = stripslashes($_POST['username']);
-
$color = $_POST['color'];
-
$font = $_POST['font'];
-
$ip = $_SERVER['REMOTE_ADDR'] . "\n";
-
$_SESSION['username'] = $username;
-
$_SESSION['color'] = $color;
-
-
-
$dirty = array('many', 'bad', 'words', 'in', 'here'); // I took out the real array just to keep the thread 'clean'.
-
-
foreach($dirty AS $bad_word){
-
$text = preg_replace("/$bad_word/i","****", $text);
-
}
-
$data[] ="\n".$username;
-
$data[] =trim($color);
-
$data[] =trim($font);
-
$data[] =trim($text);
-
-
-
$datafile = new DataFile($filename);
-
if(!$datafile->writeNewLine($data)) die("Error writing to file");
-
}
-
?>
my plan/idea is to impliment smilies into the image. If the user enters data such as 'Yay, it works!! =D' it will replace '=D' with a .gif image.
To do this I believe I will use Imagecopymerge(). but how would I go about getting the X & Y co-ords for the text that needs changing, in this case '=D'? Baring in mind that everytime a new post is submitted the previous line is moved down.
How would I do this?
Thanks,
Sam myChatbox - the site, just so you get a feel for the image and input
1 1743
Heya, Sam.
No good way to do it that I know of. I think you're hitting the limit of what a graphical chatbox can do.
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Han |
last post by:
Determining the pattern below has got my stumped.
I have a page of HTML and need to find all occurrences of the following
pattern:
score=9999999999&
The number shown can be 5-10 characters...
|
by: Glutinous |
last post by:
I've been studying this for hours, searching the www & usenet, and
still can't figure out why 'each' returns an array of four key/value
pairs, when it looks like just two pairs would suffice...
...
|
by: Pete |
last post by:
I'm working (playing) on a mouse following script. Yes, the sort no
one likes but I'm having great fun tinkering with it - sad.
Anyway, if there's enough page content to cause scrolling and I...
|
by: kinne |
last post by:
The following code is supposed to reverse the date in "yyyy-mm-dd" format,
but it produces different results in Firefox 1.0 and in Internet Explorer
6SP1. In Firefox, the result is correct...
|
by: John M |
last post by:
hi,
I'm finding this problem most frustrating. (It's probably my lack of
undersating of functions!) I want to fill a control in a report with the
result of a function. I'm calculating the...
|
by: Daniel Vallstrom |
last post by:
I'm having problems with inconsistent floating point behavior
resulting in e.g.
assert( x > 0.0 && putchar('\n') && x == 0.0 );
holding. (Actually, my problem is the dual one where I get...
|
by: Paminu |
last post by:
In math this expression:
(a < b) && (b < c)
would be described as:
a < b < c
But why is it that in C these two expressions evaluate to something
different for the same values of a, b and...
|
by: find clausen |
last post by:
How can I use this:
if (!zxmes && self.name != "menu")
and add if (zmes == 1)
if (!zxmes && self.name != "menu" || zmes == 1)
and make it work.
|
by: Paul Sijben |
last post by:
I am running a multi-threaded python application in a dual core intel
running Ubuntu.
I am using python 2.5.1 that I compiled myself. At random points I am
getting segmentation faults (sometimes...
|
by: mansi sharma |
last post by:
create table mail3(email varchar(50))
insert into mail3 values('mansi.sharma@yahoo.co.in')
insert into mail3 values('mansi.sharma+yahoo.co.in')
insert into mail3 values('mansi.sharma^yahoo.co.in')...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
| |