Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera estou precisando muito da ajuda de vcs, tenho um script em PHP que recebe informações do flash e transforma um determinado arquivo do flash em imagens. No entanto a ajuda que necessito nao tem nada ver com flash e sim com o PHP que gera esta imagem, pois preciso que ele defina o tamanho desta imagem ao ao fazer esta conversao, ou seja, ao converter a imagem ele defina x/y no tamanho de um papel A4 de forma automatica.
Pessoal que entende de PHP me ajudem a resolver isto, pois eu nao entendo de PHP.
Valeu deste de já. :thumbsup:
Este é o codgo:
<?php
error_reporting(E_ALL);
//função responsável pela exportação do MC...
function exporta()
{
global $_REQUEST;
//verificando se o GD está instalado...
if(!function_exists("imagecreate")) die("Para exportar o MC, você necessitará da biblioteca GD instalada!");
//resgatando variáveis do flash e tb verificamos se as mesmas foram preenchidas...
$w = (isset($_REQUEST['width']) && strlen($_REQUEST['width']) > 0) ? intval($_REQUEST['width']) : 3;
$h = (isset($_REQUEST['height']) && strlen($_REQUEST['height']) > 0) ? intval($_REQUEST['height']) : 3;
$s = (isset($_REQUEST['dataString']) && strlen($_REQUEST['dataString']) > 0) ? $_REQUEST['dataString'] : "2550000,2550000\n2550000,2550000";
$ext = (isset($_REQUEST['format']) && strlen($_REQUEST['format']) > 0) ? $_REQUEST['format'] : "png";
$nome = (isset($_REQUEST['filename']) && strlen($_REQUEST['filename']) > 0) ? $_REQUEST['filename'] : "imagem";
//criando image do GD...
$image = (function_exists("imagecreatetruecolor")) ? imagecreatetruecolor($w, $h) : imagecreate($w, $h);
//preenchendo o fundo da imagem de branco...os pixels brancos nao vem do flash por uma economia...
imagefill($image, 0, 0, 0xFFFFFF);
$color = explode(chr(13), $s);
for($i = 0; $i < $h; $i++){
$linha = explode(",", $color[$i]);
for($j = 0; $j < $w; $j++){
$hex = $linha[$j];
if(strlen($hex) > 0){
//convertendo HEX para DECIMAL...
while(strlen($hex) < 6) $hex = "0" . $hex;
$r = hexdec(substr($hex, 0, 2));
$g = hexdec(substr($hex, 2, 2));
$b = hexdec(substr($hex, 4, 2));
//alocando o rgb a imagem...
$tmp = imagecolorallocate($image, $r, $g, $B);
//inserindo pixel na nova imagem...
imagesetpixel($image, $j, $i, $tmp);
}
}
}
//salvando o arquivo de imagem, de acordo com o tipo especificado...
if($ext == "jpg")
imagejpeg($image, $nome, 100);
if($ext == "png")
imagepng($image, $nome, 100);
//limpando memória...
imagedestroy($image);
//resposta para o Flash...
echo "salvo=true&file=" . $nome . "&";
}exporta();
?>Fala Henrique beleza?
Bom que preciso é bem simples, vamos deixar de lado a questao do A4 ele éra apenas um exemplo.
Oque preciso se resume que definir atraves deste cod que tenho em php o tamanho da imagem, ou seja, widht e height após ele ter convertido o arquivo do flash para imagem.
Explo ele converte para uma imagem de 800x800 pixel. Seria possivel isso?
Valeu pela atenção.
Bom Henrique dei uma olhada neste link que você me passou e não entendi como inserir o script no PHP que já tenho, como eu havia falado eu não entendo nada de PHP somente de flash.
Henrique se você ou outro usuario que tem este conhecimento puder me ajudar fico muito grato.
Abraço Junior
tenta fazer parecido com o exemplo do site
$image_p = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
ai salva a $image_p
Ve se funciona
Ola Daniel dei uma olhada no exeplo do site e não consegui usar, na verdade não sei se estou fazendo correto, ja que não entendo de PHP. você poderia dar esta força?
Abraço Junior
>
Ola Daniel dei uma olhada no exeplo do site e não consegui usar, na verdade não sei se estou fazendo correto, ja que não entendo de PHP. você poderia dar esta força?
Abraço Junior
Ve se funciona assim:
$new_width = 200 ;
$new_height = 200;
$image_p = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
if($ext == "jpg")
imagejpeg($image_p, $nome, 100);
if($ext == "png")
imagepng($image_p, $nome, 100);
Se funcionar a imagem vai ficar com 200x200 px
Interessante!
Aproveitando o gancho do tópico...
Em alguns sites, principalmente em redes sociais existe uma ferramenta de corte antes de redimensionar a imagem, você seleciona uma parte da imagem com a moldura e ela ira cortar a imagem para depois redimensionar deixando um padrão.
Alguém tem uma idéia de como se faz?
Fala Daniel tranquilo?
Cara fiz todos os teste com exemplo que você me passou e não deu certo, pois ele apenas cria um quadrado preto referente ao tamanho especificado no codgo e a imagem que foi convertida do flash nada acontece.
Abraço Junior
Em alguns sites, principalmente em redes sociais existe uma ferramenta de corte antes de redimensionar a imagem, você seleciona uma parte da imagem com a moldura e ela ira cortar a imagem para depois redimensionar deixando um padrão.
Alguém tem uma idéia de como se faz?
Já pensei em implementar algo do tipo.
Em Javascript dá pra fazer, mas é meio complicado, você precisaria de Drag & Drop para a "moldura", que felizmente hoje em dia existem aos montes.
A ideia é pegar a posição do canto superior esquerdo e inferior direito da moldura de corte, passar ao PHP e fazer um resample a imagem com essa mesma função imagecopyresampled.
O difícil mesmo é a parte client side.
Em Javascript dá pra fazer, mas é meio complicado, você precisaria de Drag & Drop para a "moldura", que felizmente hoje em dia existem aos montes.A ideia é pegar a posição do canto superior esquerdo e inferior direito da moldura de corte, passar ao PHP e fazer um resample a imagem com essa mesma função imagecopyresampled.
O difícil mesmo é a parte client side.
To dando uma xeretada do tutorial do Davi Ferreira, parece ser bom
http://www.daviferreira.com/posts/recortando-imagens-com-jcrop-e-php
>
:seta: http://br.php.net/imagecopyresampled
neste link tem um exemplo bem curto e simples de entender...
Não entendi bem esta parte...
O tamanho do papel A4 é dado em milímetros, entretando, o PHP só trabalha com a unidade pixel.
Para converter pixels em milímetros não é tão simples, você precisa levar em consideração a qualidade.
Para exibir em uma tela de computador, 72 dpi são suficientes. Nesse caso a imagem deve ter o tamanho 842x596 px
Para impressão, 300 dpi no mínimo são requeridos para termos uma qualidade aceitável. Nesse caso, o tamanho deve ser 3508x2480 px