Attach on-the-fly JPG to email.
Posted: Fri May 23, 2008 3:10 pm
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:
Here is the mailform I am using. It is currently working in flash without trying to attach the image:
Any suggestions on how I go about combining the two?
Thanks for any help you can give!
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:
Code: Select all
<?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);
?>Code: Select all
<?
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\n";
$headers = $headers . "MIME-Version: 1.0\nContent-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";
}
?>Thanks for any help you can give!