Hey guys, I'm new here. x)
I'm very much a noob when it comes to PHP, but I'm trying to learn as much as I can. I've been writing a script which will generate a new image after submitting some hex codes, using these hex codes to generate certain colored parts of the image. Everything works just dandy - when you first visit the page, the values in the boxes specify the original hex codes that identify the color that is being changed. So, when you put in a new value and submit it, the page refreshes and displays those new values. I store these values in variables, and so in the script that generates the image, call the hex codes that a) need to be changed and b) replace the old hex codes. Unfortunately, the only problem is that it isn't actually changing the colors.
So I'm not really sure how to use variables to obtain these old and new hex codes.
demo.php (this is the image generating script)
Code: [Select]<?
$line = imagecreatefrompng('/images/character/etw/etwmaleline.png');
$base = imagecreatefrompng('/images/character/etw/etwmalebase.png');
$base2 = imagecreatefrompng('/images/character/etw/etwmale2base.png');
$eyes = imagecreatefrompng('/images/character/etw/etwmaleeyes.png');
$statc = imagecreatefrompng('/images/character/etw/etwmalestatc.png');
//BASE hex
$width = imagesx($base);
$height = imagesy($base);
$colorToChange = $pbase;
$newbaseColor = $_GET['base'];
$c1 = sscanf($colorToChange,"%2x%2x%2x");
$c2 = sscanf($newbaseColor,"%2x%2x%2x");
$cnew = imagecolorallocate($base,$c2[0],$c2[1],$c2[2]);
for ($y=0;$y<$height;$y++) {
for ($x=0;$x<$width;$x++) {
$rgb = imagecolorat($base,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if (($r==$c1[0]) && ($g==$c1[1]) && ($b==$c1[2])) {
imagesetpixel($base,$x,$y,$cnew);
}
}
}
//BASE2 hex
$width = imagesx($base2);
$height = imagesy($base2);
$colorToChange = $pbase2;
$newbase2Color = $_GET['base2'];
$c1 = sscanf($colorToChange,"%2x%2x%2x");
$c2 = sscanf($newbase2Color,"%2x%2x%2x");
$cnew = imagecolorallocate($base2,$c2[0],$c2[1],$c2[2]);
for ($y=0;$y<$height;$y++) {
for ($x=0;$x<$width;$x++) {
$rgb = imagecolorat($base2,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if (($r==$c1[0]) && ($g==$c1[1]) && ($b==$c1[2])) {
imagesetpixel($base2,$x,$y,$cnew);
}
}
}
//EYES hex
$width = imagesx($eyes);
$height = imagesy($eyes);
$colorToChange = $peyes;
$neweyesColor = $_GET['eyes'];
$c1 = sscanf($colorToChange,"%2x%2x%2x");
$c2 = sscanf($neweyesColor,"%2x%2x%2x");
$cnew = imagecolorallocate($eyes,$c2[0],$c2[1],$c2[2]);
for ($y=0;$y<$height;$y++) {
for ($x=0;$x<$width;$x++) {
$rgb = imagecolorat($eyes,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if (($r==$c1[0]) && ($g==$c1[1]) && ($b==$c1[2])) {
imagesetpixel($eyes,$x,$y,$cnew);
}
}
}
imagealphablending($line, 1);
imagealphablending($base, 1);
imagealphablending($base2, 1);
imagealphablending($eyes, 1);
imagealphablending($statc, 1);
$i= array($base, $eyes, $base2, $statc, $line);
$s = imagemergealpha($i);
//Merge multiple images and keep transparency
//$i is and array of the images to be merged:
// $i[1] will be overlayed over $i[0]
// $i[2] will be overlayed over that
// ...
//the function returns the resulting image ready for saving
function imagemergealpha($i) {
//create a new image
$s = imagecreatetruecolor(imagesx($i[0]),imagesy($i[1]));
//merge all images
imagealphablending($s,true);
$z = $i;
while($d = each($z)) {
imagecopy($s,$d[1],0,0,0,0,imagesx($d[1]),imagesy($d[1]));
}
//restore the transparency
imagealphablending($s,false);
$w = imagesx($s);
$h = imagesy($s);
for($x=0;$x<$w;$x++) {
for($y=0;$y<$h;$y++) {
$c = imagecolorat($s,$x,$y);
$c = imagecolorsforindex($s,$c);
$z = $i;
$t = 0;
while($d = each($z)) {
$ta = imagecolorat($d[1],$x,$y);
$ta = imagecolorsforindex($d[1],$ta);
$t += 127-$ta['alpha'];
}
$t = ($t > 127) ? 127 : $t;
$t = 127-$t;
$c = imagecolorallocatealpha($s,$c['red'],$c['green'],$c['blue'],$t);
imagesetpixel($s,$x,$y,$c);
}
}
imagesavealpha($s,true);
return $s;
}
header('Content-type: image/png');
imagepng($s);
imagedestroy($s);
error_reporting(E_ALL);
?>
hextest2.php
Code: [Select]<?php
include_once('test2.php');
$pbase = 'c8c8c8';
$pbase2 = 'c8c8c8';
$peyes = 'c8c8c8';
if (!isset($_GET['preview']) && !isset($_GET['submit']))
echo "thou hast naught yet submat thee hex codes!";
elseif (isset($_GET['preview']) && !isset($_GET['submit']))
include_once('test3.php');
else (
include_once('test4.php'));
?>
<html>
<head>
<title>Soundtrack Howl!</title>
<link rel="stylesheet" type="text/css" />
</head>
<body style="background-color: #d8d8d8;"> <center>
<table width="700px"> <tr> <td width="400px">
<img src="demo.php"/>
</td> </tr>
<tr> <td width="300px">
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">
<b>Base:</b> # <input type="text" name="base" value="<? echo($pbase); ?>" /> <br />
<b>2nd Base:</b> # <input type="text" name="base2" value="<? echo($pbase2); ?>" /> <br />
<b>Eyes:</b> # <input type="text" name="eyes" value="<? echo($peyes); ?>" /> <br />
<input type="submit" name="preview" value="Preview Character!" /> <br /> <br />
<input type="submit" name="submit" value="Make Your New Character!!" />
</form>
</td> </tr> </table>
</center>
</body>
</html>
test3.php
Code: [Select]<?php
include_once('./includes/general.php');
if ($_GET['base']=='' or $_GET['base2']=='' or $_GET['eyes']==''){
echo "You haven't filled them all out! <br />";
}
if (strlen($_GET['base'])<'6' || strlen($_GET['base2'])<'6' || strlen($_GET['eyes'])<'6'){
echo "The hex codes are incomplete! <br />";
}
else {
$pbase = $_GET['base'];
$pbase2 = $_GET['base2'];
$peyes = $_GET['eyes'];
}
?>
test4.php
Code: [Select]<?php
include_once('./includes/general.php');
if ($_GET['base']=='' or $_GET['base2']=='' or $_GET['eyes']==''){
echo "You haven't filled them all out!";
}
else {
$nbase = $_GET['base'];
$nbase2 = $_GET['base2'];
$neyes = $_GET['eyes'];
$sql = mysql_query("INSERT INTO `character` (`base`, `base2`, `eyes`)
VALUES ('$nbase', '$nbase2', '$neyes') ") or die("Thou has submat thee hex codes! There be errors abreast!<br />".mysql_error());
header('Location: complete.php');
}
?>
And /includes/general.php is just the file that connects to the database.
I'm SO sorry, I know it's a ton of stuff to read, but I want to make sure the problem isn't just in demo.php. Also, I'm aware that my script(s) are messy and may have some unnecessary coding, so just ignore that unless it has anything to do with my problem XD To clarify, I did not actually literally write the image generating script all by myself. I used php.net and googled some stuff to reference.
Thanks
need help to creat database
Hello Team, please guys i am stuck from three days with paypal issue for IPN but no luck yet now i wants to do other method. i have used this form to send info to paypal and everything is working ok
Pulling out some result data from MYSQL
Hey Guys, I've built a PHP page that has a for just imagine something like registration form, So obviously it posts data into my table in my DB, So Now what I’m trying to do is creating a form
Calender Not Opening
The following code is not loading the javascript calender in another window. It's not doing anything.Code: <td class="row3"><input type="text"
Problem in back link
I have page where i have given javascript back link but when i click on it browser give a messageWebpage has expired
Format String help
I have a textbox where a person enters an application number. the application number is 10 characters in length:ex: 000012345A0256775434My clients only want to enter in the numbers without the
Display Database
I need to create a shopping cart. I found this code online: http://conceptlogic.com/jcart/Unfortunately, I dont know how to display my product from MYSQL rather than hardcoding as shown in the script
help with contest script
I would like to code a contest script to my site but i don't know how. Could someone just give me push in the right direction?
reading xml faster than DB call?
I am trying to optimize a high traffic website, and I enabled a feature where there are three photos selected from the most recently submitted ones, and displayed at the top of the page. I figured
Default TimeZone
The server I'm working with is hosted in America so all times inserted into the database are coming out 5 hours differen't to what I want them to. I attempted placing the following in my Header
HELP with mysql_real_escape_string
I'm looking to remove apostrophes completely when someone enters lyrics but don't have a clue how to do it.I've attached the 'submit lyric' page and the page where I approve submitted lyrics.(they're