Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junior.c.e

Definir tamanho de imagens com PHP

Recommended Posts

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 . "&";
}
//executando função export...
exporta();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

global $_REQUEST;

Isso é desnecessário, $_REQUEST já é global por natureza.

 

[...] ao converter a imagem ele defina x/y no tamanho de um papel A4 de forma automatica.

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.