Preciso de um script onde será mostrada a foto de um determinado produto, e o usuario poderá escrever alguma coisa nele, assim que ele der o OK, teria que aparecer o que ele escrever na imagem, até ai consigo imagettftext usando a biblioteca GD, porém, quero fazer isso sem dar refresh na página.
Estou usando essa função para pegar os parametros, mandar para a pagina que faz o processo de escrita e retornar para o resultado sem sair da pagina.
<script type="text/javascript">
function lerTexto(img)
{
w=document.getElementById("texto").value;
getTexto(img,w);
}
</script>
<script language="javascript" type="text/javascript">
function getXMLHTTP() {
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function getTexto(imagem,texto) {
var strURL="imagens.php?imagem="+imagem+"&texto="+texto;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('imagem').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
</script>
Até ai perfeito, retorna o valor, ou seja a função funciona o problema mesmo deve estar no php porque em vez de retornar a imagem, está retornando uma página cheia de caracteres estranhos e tal. Desconfio que isso aconteça devido a imagem ser criada e depois destruida, mas já comentei a parte em que é destruida e o resultado é o mesmo.
ai vai o código.
<?php
$string= $_GET["texto"];
$gfx= $_GET["imagem"];
$extension=substr($gfx, -3);
$extension = strtolower($extension);
if ($extension=="jpg" || $extension=="gif" || $extension=="png" ){
if ($extension=="jpg"){
$im = imagecreatefromjpeg($gfx);
}
if ($extension=="gif"){
$im = imagecreatefromgif($gfx);
}
if ($extension=="png"){
$im = imagecreatefrompng($gfx);
}
header("Content-type: image/png");
// Colocar o Texto na Imagem
$white = imagecolorallocate($im, 255, 255, 255);
$altura= (imagesy($im))-30;
$altura2= (imagesy($im))-15;
// Definir as variaveis GD
putenv('GDFONTPATH=' . realpath('.'));
// Nome da(s) fonte(s).
$fonte = 'GeosansLight.ttf';
//$fonte2='GeosansLight-Oblique.ttf';
// bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )
imagettftext($im, 20, 0, 55, $altura, $white, $fonte, $string);
//imagettftext($im, 13, 0, 10, $altura2, $white, $fonte2, $string2);
imagepng($im);
imagedestroy($im);
}
?>
Se alguém tiver uma solução eu agradeço muito, abraços e um bom final de semana!
Pergunta
*FIT*
Bom dia Galera, todos bem?
Preciso de um script onde será mostrada a foto de um determinado produto, e o usuario poderá escrever alguma coisa nele, assim que ele der o OK, teria que aparecer o que ele escrever na imagem, até ai consigo imagettftext usando a biblioteca GD, porém, quero fazer isso sem dar refresh na página.
Estou usando essa função para pegar os parametros, mandar para a pagina que faz o processo de escrita e retornar para o resultado sem sair da pagina.
Até ai perfeito, retorna o valor, ou seja a função funciona o problema mesmo deve estar no php porque em vez de retornar a imagem, está retornando uma página cheia de caracteres estranhos e tal. Desconfio que isso aconteça devido a imagem ser criada e depois destruida, mas já comentei a parte em que é destruida e o resultado é o mesmo. ai vai o código.Se alguém tiver uma solução eu agradeço muito, abraços e um bom final de semana!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.