Proszę, ale ostrzegam, że kod
pisany dawno temu, więc jest sporo do poprawienia.
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Napis na logu</title>
<link rel="stylesheet" type="text/css" href="varia/logo.css">
<script type="text/javascript" SRC="varia/logo.js"></script>
</head>
<body>
<div id="ikony">
<img src="varia/help.gif" title="Pomoc" alt="Pomoc" id="help" onClick="alert('I tu będzie pomoc');">
</div>
<div>
<br>
<?php
if($_POST['x'] != "" && $_POST['y'] != "" && $_POST['text'] != "" && $_POST['size'] != "" && $_POST['jakosc'] != "" &&
{
$im = imagecreatefromjpeg('./noText-logo.jpg');
$color = imagecolorallocate($im, $kolor[0], $kolor[1], $kolor[2]);
$text = iconv("ISO-8859-2","UTF-8",$_POST['text']);
imagefttext($im, $_POST['size'], 0, $_POST['x'], $_POST['y'], $color, "./fonts/".$_POST['font'], $text);
// Output image to the browser
imagejpeg($im, './logo.jpg', $_POST['jakosc']);
imagedestroy($im);
?>
<?php
}
{ echo("<img src=\"./logo.jpg?mtime=" . filemtime('./logo.jpg') . "\" onClick=\"parametry(event);\" alt=\"logo\">"); } else {echo("<img src=\"./noText-logo.jpg\" onClick=\"parametry(event);\" alt=\"logo\">");} ?>
<br><br>
<form action="index.php" method="post" onSubmit="return sprawdz();">
<div>
Tekst:<input type="text" id="text" name="text" value="
<?php echo($_POST['text'])?>"><br><br>
Rozmiar:<input type="text" id="size" name="size" size="2" maxlength="2" value="
<?php echo($_POST['size'])?>"><br><br>
X:<input type="text" id="x" name="x" size="2" maxlength="3" value="
<?php echo($_POST['x'])?>"><br>
Y:<input type="text" id="y" name="y" size="2" maxlength="3" value="
<?php echo($_POST['y'])?>"><br><br>
Jakość:<input type="text" id="jakosc" name="jakosc" size="2" maxlength="3" value="
<?php echo($_POST['jakosc'])?>"><br>
<select name="font">
<option value="arial.ttf">Arial</option>
<option value="ariblk.ttf">Arial black</option>
<option value="cour.ttf">Courier New</option>
<option value="georgia.ttf">Georgia</option>
<option value="times.ttf">Times New Roman</option>
<option value="verdana.ttf">Verdana</option>
</select>
<table id="pickerTable">
<tr>
<td><input type="hidden" id="kolorek" name="kolor" value="
<?php echo($_POST['kolor']);?>"></td><td><div id="kolor_div"></div></td><td><input type="button" value="Kolor czcionki"></td>
</tr>
</table>
<input type="submit" value="OK">
</div>
</form>
</div>
<script>
document.getElementById('kolor_div').style.backgroundColor = "
<?php echo($_POST['kolor']); ?>";
</script>
</body>
</html>
JS:
function sprawdz()
{
blad="";
if(document.getElementById('text').value == "") blad += "Nie wpisano żadnego tekstu\n";
if(document.getElementById('size').value == "") {blad += "Nie podano jakości wielkości czcionki\n";} else
if(isNaN(document.getElementById('size').value)) {blad += "Wielkość czcionki musi być liczbą\n";}
if(document.getElementById('x').value == "") {blad += "Nie podano parametru X\n";} else
if(isNaN(document.getElementById('x').value)) {blad += "Parametr X musi być liczbą\n";}
if(document.getElementById('y').value == "") {blad += "Nie podano parametru Y\n";} else
if(isNaN(document.getElementById('y').value)) {blad += "Parametr Y musi być liczbą\n";}
if(document.getElementById('jakosc').value == "") {blad += "Nie podano jakości powstałego loga\n";} else
if(isNaN(document.getElementById('jakosc').value)) {blad += "Jakość powtałego loga musi być liczbą\n";}
if(document.getElementById('kolorek').value == "") blad += "Nie podano koloru";
if(blad == "") {return true;} else {alert(blad); return false;}
}
function parametry(evt) {
var img_x;
var img_y;
if (document.all)
{
img_x = evt.offsetX;
img_y = evt.offsetY;
} else
{
img_x = evt.clientX;
img_y = evt.clientY;
for(var offMark = evt.target; offMark; offMark = offMark.offsetParent)
{ img_x -= offMark.offsetLeft; }
for(var offMark = evt.target; offMark; offMark = offMark.offsetParent)
{ img_y -= offMark.offsetTop; }
}
document.getElementById('x').value = img_x;
document.getElementById('y').value = img_y;
}
/**
* Paleta kolorow
* This class i for choosing colors
* works perfectly in Opiera 7, Netscape 7, Mozilla 0.9x, and IE 6.0
*
* @author Marek Bedkowski "bendi"
* @package <a href="http://bedkowski.pl" target="_blank">http://bedkowski.pl</a>
* @link <a href="http://bedkowski.pl" target="_blank">http://bedkowski.pl</a>
*
* This package is protected by copy rights and international treaties. If you want to use it on your website you need to buy licence. For non commercial use licence is free.
*/
var _s = 'style',_i = 'innerHTML',_D=document,_d='onmouse',_o=_d+'out',_c='onclick',_d=_d+'down',Picker ={
convert:function(l,b,t){return (parseInt(l,b)).toString(t);},
setColorFields:function(kod,k,i,h){
with(this) {
if(!kod){c[1][_i]='red'; c[2][_i]='green'; c[3][_i]='blue'; c[0][_i]='hex';}
else {
c[0][_i]='#';
if(kod.indexOf('rgb')<0)for(i=0,eval('k=['+kod.replace(/#?\w(.)/g,'"$1$1",')+']');h=k[i],i<3;)
{c[0][_i]+=h.toUpperCase()+''; c[++i][_i]=convert(h,16,10);}
else for(eval('k=['+kod.replace(/(?:rgb\()?(\d+)\)?/g,'$1')+']'),i=0;h=convert(k[i],10,16),i<3;)
{c[0][_i]+=h!=0?h.toUpperCase():'00'; c[++i][_i]=k[i-1];}
}
}
},
createPalette:function(i,j,k,s,h){
for(h='0369acf'.split(''),i=0,s='';x=h[i++];)
for(j=0;y=h[j++];)for(k=0;z=h[k++];)
s+=(k==1&&j==1?'<tr><td '+_s+'="background:#'+x+x+x+x+x+x+'"></td>':'')+'<td '+_s+'="background:#'+x+x+y+y+z+z+'"></td>'+(k==h.length&&j==h.length?'</tr>':'');
return '<table><tr><td></td><td><div>hex</div></td><td><div>red</div></td><td><div>green</div></td><td><div>blue</div></td></tr></table><table>'+s+'</table>';
},
hide:function(e,x,y){
src=e?e.target:event.srcElement
if(src.nodeName.toLowerCase()=='td'){
y=this.eventSrc.parentNode.parentNode;
(x=y.getElementsByTagName('input')[0]).type=='hidden'?x.value=this.c[0][_i]:'';
(x=y.getElementsByTagName('div')[0])?x[_s].backgroundColor=this.c[0][_i]:'';
} this.p[_s].left=-1000+'px';
this.setColorFields();
_D[_d]=null;
},
tdOnMouseOver:function(e,t,x){
x=!e?event.srcElement:e.target;
if ( !/td/i.test( x.nodeName ) ) return;
x[_s].backgroundImage='url("'+img.src+'")'
x[_o]=function(e){this[_s].backgroundImage='';}
this.setColorFields(x[_s].backgroundColor);
},
showPicker:function(e,x,mX,mY){
x=this; mX=e?e.pageX:event.x; mY=e?e.pageY:event.y+_D.body.scrollTop;
with(x.p[_s]){display='block';top = mY+'px';left = mX-100+'px';}
x.eventSrc=e?e.target:event.srcElement
_D[_d]=function(e){x.hide(e);}
},
init:function(d,E,b,i,k,t,x){
d=document;E=d.documentElement;b=d.body;if(!E)return; x=this;
this.p=''; this.c=new Array(4);
with( ( x.p=d.createElement('div') ) ){
setAttribute('id','picker');
innerHTML=x.createPalette();
getElementsByTagName('table')[1].onmouseover=function(e){x.tdOnMouseOver(e,x);}
}
b.appendChild(x.p);
for(i=0,x.c=x.p.getElementsByTagName('div');t=x.c[i++];)
with(t[_s])color=borderColor='#'+(i>1?'000'.substring(0,i-2)+'f':'')+'000'.substring(0,4-i);
for(i=0;t=d.getElementById('pickerTable').getElementsByTagName('input')[i++];)
t.onclick=/^but/i.test(t.type)?function(e){x.showPicker(e);}:null;
}
}
onload=function(){Picker.init();}
var img = new Image();
img.src='varia/ramka.gif';
Oprócz tego mam taką strukturę katalogów:
+ katalog varia: pliki css i js + obrazki pomocnicze
+ katalog fonts: pliki z czcionką: np. arial.ttf , verdana.ttf
- index.php - to co podałem
- noText-logo.jpg - puste logo( bez napisu )
- logo.jpg - plik, który się tworzy na serwerze już z napisem
Jest to bardzo prosty skrypt.