I want to have a “Print This Image” button on the page where the image is generated. Ive tried putting html code on my image.php file(see codes below) but it wont show. Some people said to try separating the html and php code. Ive tried using the <img src="image.php" alt="" /> code on another file called generated.php but all I get is a broken image. Please help! 🙁
Here is the code of my image.php file:
$num_fields = $_POST['num_fields'];
// create image
$image = imagecreate(500, 500);
// allocate some colors
$white = imagecolorallocate($image, 255, 255, 255);
$pink = imagecolorallocate($image, 255, 105, 180);
$red = imagecolorallocate($image, 255, 000, 000);
$green = imagecolorallocate($image, 034, 139, 034);
$brown = imagecolorallocate($image, 139, 069, 019);
$yellow = imagecolorallocate($image, 255, 255, 000);
$orange = imagecolorallocate($image, 255, 140, 000);
$blue = imagecolorallocate($image, 100, 149, 237);
$purple = imagecolorallocate($image, 218, 112, 214);
$gray = imagecolorallocate($image, 205, 205, 193);
$black = imagecolorallocate($image, 000, 000, 000);
$cyan = imagecolorallocate($image, 000, 255, 255);
//bg color//
imagefilledrectangle($image,0,0,500,500,$white);
$font = 'arial.ttf';
if($num_fields =='6')
{
// for each slices
imagefilledarc($image, 250, 250, $_POST['rating-1'], $_POST['rating-1'], 0, 60, $pink, IMG_ARC_EDGED);
imagefilledarc($image, 250, 250, $_POST['rating-2'], $_POST['rating-2'], 60, 120 , $green, IMG_ARC_EDGED);
imagefilledarc($image, 250, 250, $_POST['rating-3'], $_POST['rating-3'], 120, 180 , $red, IMG_ARC_EDGED);
imagefilledarc($image, 250, 250, $_POST['rating-4'], $_POST['rating-4'], 180, 240 , $gray, IMG_ARC_EDGED);
imagefilledarc($image, 250, 250, $_POST['rating-5'], $_POST['rating-5'], 240, 300 , $orange, IMG_ARC_EDGED);
imagefilledarc($image, 250, 250, $_POST['rating-6'], $_POST['rating-6'], 300, 360 , $blue, IMG_ARC_EDGED);
//outline
imagefilledarc($image, 250, 250, 400, 400, 0,360, $black, IMG_ARC_NOFILL); //outer circle
imagefilledarc($image, 250, 250, 320, 320, 0,360, $black, IMG_ARC_NOFILL); //inner circle
imageline($image, 250, 250, 450, 250, $black ); //line bet blue and pink 0 deg
imageline($image, 250, 250, 349, 78, $black ); //line bet orange and blue
imageline($image, 250, 250, 150, 78, $black ); //line bet orange and gray
imageline($image, 250, 250, 50, 250, $black ); //line bet red and gray
imageline($image, 250, 250, 151, 422, $black ); //line bet red and green
imageline($image, 250, 250, 350, 422, $black ); //line bet pink and green
//text legends 2
imagettftext($image, 9, 243, 425, 280, $black, $font, $_POST['field-1']);
imagettftext($image, 9, 183, 315, 415, $black, $font, $_POST['field-2']);
imagettftext($image, 9, 120, 130, 380, $black, $font, $_POST['field-3']);
imagettftext($image, 9, 60, 75, 210, $black, $font, $_POST['field-4']);
imagettftext($image, 9,0, 200, 80, $black, $font, $_POST['field-5']);
imagettftext($image, 9, 300, 378, 128, $black, $font, $_POST['field-6']);
// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
}
It is a bit unclear to me what you want, but… The code you are showing is just making the image. In addition to this, you need an html page made by some scripting language that forwards the queries to your image.php e.g. (this is quite old fashioned php-coding and looks ugly, but it should work)
(The “My image” part may of course be anything you like as a title for your page)
Now you can start to add on something more between the and tags. If you add some html output in the file you have now, it will either be ignored or it will make your image invalid.