Um SWF passa os pixels para o php que cria a imagem no servidor, bom,
esta parte está tudo certo, porém gostaria antes de armazenar a imagem
no servidor, cortá-la em um determinado local... já andei pesquisando e
encontrei algumas coisas, mas nada funcionou, se alguém puder me ajudar,
segue o código:
PS: a imagem, pixels, vindos do SWF tem 350 x 100 px, quero cortar
no 50 x 50 px e salvar uma imagem com 300 x 100 px.
<?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, vc 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'] : "jpg";
$nome = (isset($_REQUEST['filename']) && strlen($_REQUEST['filename']) > 0) ? $_REQUEST['filename'] : "imagem";
//criando image do GD...
$image = (function_exists("imagecreatetruecolor")) ? imagecreatetruecolor($w, $h) : imagecreate(350, 150);
//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...
header("Content-type: image/jpeg");
imagejpeg($image, "imagens/imagemCerta.jpg", 100);
//inicio da função para cortar imagem-------------------------------------------
// $filename = "imagens/imagemCerta.jpg";
// Content type
// header('Content-type: image/jpeg');
// Nova imagem com Novo tamanho
// $image_p = imagecreatetruecolor(300, 100);
// $image_x = imagecreatefromjpeg($filename);
// imagecopyresampled($image_p, $image_x, 0, 0, 50, 50, 300, 100, 350, 150);
// Output
// imagejpeg($image_p, "imagens/TamanhoCerto.jpg", 100);
//fim da função de cortar a imagem-------------------------------------------
//limpando memória...
imagedestroy($image);
//resposta para o Flash...
echo "salvo=true&file=" . $nome . "&";
}
//executando função export...
exporta();
?>Por favor, se alguém puder me ajudar...
Obrigado, abraço...
Edição feita por: deqr, 08/02/2008, 07:20.










