Hello all -
I’m trying to export an image from flash and send that image through email using PHP. The jpg is exporting just fine, but I am uncertain as to how to attach it to an email. I’m using sephiroth’s print class to export the jpg. Here is the code that renders the image in a browser:
<?php
error_reporting(0);
/**
* Get the width and height of the destination image
* from the POST variables and convert them into
* integer values
*/
$w = (int)$_POST['width'];
$h = (int)$_POST['height'];
// create the image with desired width and height
$img = imagecreatetruecolor($w, $h);
// now fill the image with blank color
// do you remember i wont pass the 0xFFFFFF pixels
// from flash?
imagefill($img, 0, 0, 0xFFFFFF);
$rows = 0;
$cols = 0;
// now process every POST variable which
// contains a pixel color
for($rows = 0; $rows < $h; $rows++){
// convert the string into an array of n elements
$c_row = explode(",", $_POST['px' . $rows]);
for($cols = 0; $cols < $w; $cols++){
// get the single pixel color value
$value = $c_row[$cols];
// if value is not empty (empty values are the blank pixels)
if($value != ""){
// get the hexadecimal string (must be 6 chars length)
// so add the missing chars if needed
$hex = $value;
while(strlen($hex) < 6){
$hex = "0" . $hex;
}
// convert value from HEX to RGB
$r = hexdec(substr($hex, 0, 2));
$g = hexdec(substr($hex, 2, 2));
$b = hexdec(substr($hex, 4, 2));
// allocate the new color
// N.B. teorically if a color was already allocated
// we dont need to allocate another time
// but this is only an example
$test = imagecolorallocate($img, $r, $g, $b);
// and paste that color into the image
// at the correct position
imagesetpixel($img, $cols, $rows, $test);
}
}
}
// print out the correct header to the browser
header("Content-type:image/jpeg");
// display the image
imagejpeg($img, "", 90);
?>
Here is the mailform I am using. It is currently working in flash without trying to attach the image:
<?
include("proc_form_vars.php");
//standard form values
$toMail = procformvar("post","toEmail","");
$toName = procformvar("post","toName","");
$fromMail = procformvar("post","fromEmail","");
$fromName = procformvar("post","fromName","");
$dl = procformvar("post","dl","");
//mailformvars("a@a.com","");
$subject = "$emailSubject";
$headers = "From: $fromMail
";
$headers = $headers . "MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1";
$scriptpath = str_replace("send_email.php","/",$_SERVER["SCRIPT_NAME"]);
$serverPath = "http://". $_SERVER["HTTP_HOST"].$scriptpath;
$linkUrl = $serverPath."test.html";
$emailSubject = "You've received a customized wallpaper!";
//$linkUrl = $siteURL.$dl;
//$linkUrl = $serverPath;
$mailText = "<font face=\"Arial\"> $toName - <br>
$fromName has sent you a customized wallpaper!
</font>";
mailformvars("a@a.com");
if (mail($toMail,$fromName." "."$emailSubject",$mailText,$headers)) {
echo "&script_message=ok";
} else {
echo "&script_message=failed";
}
?>
Any suggestions on how I go about combining the two?
Thanks for any help you can give!