我正在尝试创建一个签名系统。它应该从论坛数据库中获取数据并将其显示在图像中。我目前的实现只显示:
应显示cover.png
<?php
if (file_exists(dirname(__FILE__) . '/SSI.php')) {
require(dirname(__FILE__) . '/SSI.php');
}
else die("GRESKA: SSI.php nije pronaden!");
error_reporting(E_ALL);
$username="root"; // KORSINICKO IME
$password=""; // ŠIFRA
$database="smf"; // BAZA
$host="localhost"; // HOST
mysql_connect("localhost","root","");
mysql_select_db("smf") or die( "GRESKA: Dogodila se greska pri povezivanju na bazu podataka!");
if(isset($_GET['id'])) $korisnikov_id = $_GET['id']; // DOBAVLJA KORISNIKOV ID
else if(isset($_POST['id'])) $korisnikov_id = $_POST['id'];
$korisnikov_id = mysql_real_escape_string($korisnikov_id);
if(isset($_GET['stil'])) $stil = $_GET['stil']; // DOBAVLJA STIL POTPISA
else if(isset($_POST['stil'])) $stil = $_POST['stil'];
$stil = mysql_real_escape_string($stil);
if($stil == 1 ) // STIL I
{
$query = "SELECT * FROM `smf_members` WHERE `id_member` = '$korisnikov_id' LIMIT 1"; // VADI PODATKE IZ KOJE TABELE?
$rezultat = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($rezultat) == "0") die("GRESKA: Taj korisnicki ID ne postoji u bazi."); // ID JE 0 ILI JOS NIJE REGISTROVAN???
$row = mysql_fetch_assoc($rezultat);
$ime = $row['real_name']; // KORISNIKOVO TRENUTNO IME
$postovi = $row['posts']; // POSTOVI
$grupe = $row['id_group']; // GRUPA
$spol = $row['gender']; // SPOL
$email = $row['email_address']; // KORISNIKOV EMAIL
$vreme = $row['total_time_logged_in']; // VREME PROVEDENO NA FORUMU
// KONVERTER VREMENA
function secondsToWords($vreme)
{
$days=(int)($vreme/86400);
$hours = (int)(($vreme-($days*86400))/3600);
$mins = (int)(($vreme-$days*86400-$hours*3600)/60);
return sprintf("%dd %dh %dm", $days, $hours, $mins);
}
if($spol == 1) $spoltext = "Musko";
if($spol == 2) $spoltext = "Zensko";
if($spol == 0) $spoltext = "Nepoznato";
// DOBAVLJAMO STVARI DIREKTNO SA PROFILA
global $context, $settings, $modSettings, $db_prefix, $boardurl;
loadMemberData(array($korisnikov_id), false, 'profile');
loadMemberContext($korisnikov_id);
$context['status'] = $memberContext[$korisnikov_id]['online']['text']; // ONLINE/OFFLINE STATUS
$context['avatar'] = $memberContext[$korisnikov_id]['avatar']['href']; // AVATAR
header("Content-type: image/jpeg,image/gif,image/png"); // PRETVARA STRANICU U SLIKU
$Potpisi = @imagecreatefrompng('cover.png'); // LOKACIJA SLIKE
$BOJA_BELA = imagecolorallocate($Potpisi, 255, 255, 255);
$FONT = "./Fontovi/BebasNeue.otf"; // FONT
$ADMINISTRATOR = 'Administrator'; // RANKOVI
$CLAN = 'Clan';
if($grupe == 1) // GRUPE
{
imagettftext($Potpisi, 21, 0, 115, 50, $BOJA_BELA, $FONT, $ime); // VELIKO IME
imagettftext($Potpisi, 17, 0, 115, 90, $BOJA_BELA, $FONT, $ADMINISTRATOR); // ADMINISTRATOR
}
else
{
imagettftext($Potpisi, 21, 0, 115, 50, $BOJA_BELA, $FONT, $ime); // VELIKO IME
imagettftext($Potpisi, 17, 0, 115, 90, $BOJA_BELA, $FONT, $CLAN); // CLAN
}
imagettftext($Potpisi, 13, 0, 45, 187, $BOJA_BELA, $FONT, $postovi); // POSTOVI
imagettftext($Potpisi, 13, 0, 174, 187, $BOJA_BELA, $FONT, secondsToWords($vreme)); // VREME PROVEDENO ONLINE
imagettftext($Potpisi, 13, 0, 333, 143, $BOJA_BELA, $FONT, $spoltext); // SPOL
imagettftext($Potpisi, 17, 0, 115, 70, $BOJA_BELA, $FONT, $email); // EMAIL
imagettftext($Potpisi, 17, 0, 115, 110, $BOJA_BELA, $FONT, $context['status']); // ONLINE/OFFLINE INDIKATOR
// DOBAVLJAČ AVATARA SA PROFILA KORISNIKA TE KONVERTER SLIKE
if (exif_imagetype($context['avatar']) == IMAGETYPE_GIF)
$traziavatar = imagecreatefromgif($context['avatar']);
if (exif_imagetype($context['avatar']) == IMAGETYPE_PNG)
$traziavatar = imagecreatefrompng($context['avatar']);
if (exif_imagetype($context['avatar']) == IMAGETYPE_JPEG)
$traziavatar = imagecreatefromjpeg($context['avatar']);
list($width, $height) = getimagesize($context['avatar']); // KONVERTOVANJE AVATARA
$context['avatar'] = imagecreatetruecolor(512, 512);
imagecopyresampled($Potpisi, $traziavatar, 16.5, 25, 0, 0, 92, 92, $width, $height); // PRIKAZ AVATARA
imagepng($Potpisi);
imagedestroy($Potpisi);
}
else if($stil == 2) // STIL II
{
// STIL II NASTAVLJATE SAMI
}else { die("GRESKA: Taj stil ne postoji u bazi podataka! Pronadjeni stilovi (1) , (2)"); }
?>
答案 0 :(得分:0)
编辑:
好的,所以我查看了您的代码,您的图片被while read line
do
printf "%s" "$line"
done < file.txt
保存到imagecopyresampled
$Potpisi
(因此您的基本图片文件被覆盖)。
将代码的最后部分更改为:
cover.png
并且不要忘记将您的内容类型更改为png:
$context['avatar'] = imagecreatetruecolor(512, 512);
imagecopyresampled($context['avatar'], $traziavatar, 16.5, 25, 0, 0, 92, 92, $width, $height); // PRIKAZ AVATARA
imagepng($context['avatar']);
imagedestroy($context['avatar']);