签名png不显示

时间:2016-02-18 17:54:51

标签: php mysql sql image

我正在尝试创建一个签名系统。它应该从论坛数据库中获取数据并将其显示在图像中。我目前的实现只显示:

Current result

应显示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)"); }

?>

1 个答案:

答案 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']);