1

脸书图像合并

嗨,我想开发一个 facebook 应用程序。它将在哪里进行测验,然后将个人资料图片合并到证书图像中。结果。

index.php 文件如下

<?php
include_once "fbmain.php";
//if user is logged in and session is valid.
if ($user){
//fql query example using legacy method call and passing parameter
try{
$fql = "select name, hometown_location, sex, pic_square from user where uid=" . $user;
//http://developers.facebook.com/docs/reference/fql/
$param = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$fqlResult = $facebook->api($param);
}
catch(Exception $o){
d($o);
}
}
//set page to include default is home.php
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : "home.php";
include_once "template.php";
?>

home.php 如下

<?php
echo '<div id="namaz_content">';
echo '</div>';
echo $userInfo['picture'];
//Get the current users id
$uid = $facebook->getUser();
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture?width=80&height=80";
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
echo '<img src="image.php?name=My name is Tushar&result=A%2D&taka=1000&subject=math" />';
?>

image.php 文件如下

<?php
$text=$_GET['name'];
$result=$_GET['result'];
$subject=$_GET['subject'];
$taka='Tk. '.$_GET['taka'].'/-';
$dest = imagecreatefromjpeg('certificate.jpg');
$src = imagecreatefromjpeg('7e142c8d.jpg');
// Allocate A Color For The Text
$red = imagecolorallocate($dest,255,0,0);
$blue= imagecolorallocate($dest,0,0,255);
// Set Path to Font File
$font_path = 'bdquiz.ttf';
// Set Text to Be Printed On Image
// Print Text On Image
imagettftext($dest, 20, 0, 192, 240, $red, $font_path, $text);
imagettftext($dest,35, 0, 72, 380, $red, 'arial.ttf', $result);
imagettftext($dest,15, 0, 318, 420, $red, 'arial.ttf', $taka);
imagettftext($dest,15, 0, 270, 348, $blue, 'arial.ttf', $subject);
imagecopymerge($dest, $src, 468, 186, 0, 0, 80, 80, 100); //have to play with these numbers for it to work for you, etc.
//header('Content-Type: image/png');
imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
?>

这工作正常。但我希望在 image.php 中使用用户个人资料图片而不是 '7e142c8d.jpg' 解决方案是什么?请帮助

4

1 回答 1

0

我不确定你在编码方面有多好,所以我分步解释。

在 home.php 中

在顶部添加:

session_start();

并将其添加到 profile_pic 之后的下一行

$_SESSION['profilepic']=$profile_pic;

现在在 image.php 中,在顶部添加这个

session_start();

改变这个

$src = imagecreatefromjpeg('7e142c8d.jpg');

$src = imagecreatefromjpeg('$_SESSION['profilepic']');

或者,如果您不想了解如何操作,只想让事情正常工作,请复制粘贴此内容。(我希望你想学习而不是复制粘贴。)

主页.php

<?php
session_start();
echo '<div id="namaz_content">';
echo '</div>';
echo $userInfo['picture'];
//Get the current users id
$uid = $facebook->getUser();
//create the url
$profile_pic = "http://graph.facebook.com/".$uid."/picture?width=80&height=80";
$_SESSION['profilepic'] = $profile_pic;
//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";
echo '<img src="image.php?name=My name is Tushar&result=A%2D&taka=1000&subject=math" />';
?>

图片.php

<?php
session_start();
$text=$_GET['name'];
$result=$_GET['result'];
$subject=$_GET['subject'];
$taka='Tk. '.$_GET['taka'].'/-';
$dest = imagecreatefromjpeg('certificate.jpg');
$src = imagecreatefromjpeg('$_SESSION['profilepic']');
// Allocate A Color For The Text
$red = imagecolorallocate($dest,255,0,0);
$blue= imagecolorallocate($dest,0,0,255);
// Set Path to Font File
$font_path = 'bdquiz.ttf';
// Set Text to Be Printed On Image
// Print Text On Image
imagettftext($dest, 20, 0, 192, 240, $red, $font_path, $text);
imagettftext($dest,35, 0, 72, 380, $red, 'arial.ttf', $result);
imagettftext($dest,15, 0, 318, 420, $red, 'arial.ttf', $taka);
imagettftext($dest,15, 0, 270, 348, $blue, 'arial.ttf', $subject);
imagecopymerge($dest, $src, 468, 186, 0, 0, 80, 80, 100); //have to play with these numbers for it to work for you, etc.
//header('Content-Type: image/png');
imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
?>
于 2012-11-25T17:44:46.083 回答