Jump to content


Photo

Este Script De Inserelogo Já é Bom


  • Faça o login para participar
2 replies to this topic

#1 AMDeus

AMDeus

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 10/02/2005, 16:26

Para quem procura acabou de encontrar: Eu já utilizo a muito tempo este script de inserção de logomarcas, para um site de bijouterias e cobertura de eventos.
É simples e já está comentado.. porem necessito de uma ajuda fazêlo inserir altomaticamente.

Um script de upload de 5 arquivos por vez eu não tenho, o problema é:

Enviar 5 imagens por vez via upload:
No upload, a logo é inserida automaticamente
Com possibilidade de escolher a pasta de destino das imagens.
Sem ter que mudar de pasta (imagem enviada = imagem na mesma pasta)

Para quem já utiliza, gostaria de saber também se este procedimento de inserir logos requer muito servidor, porque aqui em casa... não demora tanto.
E se é possível gerar uma nova imagem na mesma pasta de onde a imagem de origem está (sobreescrever o arquivo).

o script (que funciona beleza) é este:

<?
//config
set_time_limit(300);

// taxa de compressão do JPEG
$tx_compressao = 75;

// imagem com logomarca e marca d`água
$arq_marca_h = 'emhorizontal.png';
$arq_marca_v = 'emvertical.png';

// correção de gamma de cores
$tx_correcao = 1.0;

// pasta de origem, onde o script vai carregar as imagens originais
$dir = "./originais";

// pasta de destino, onde o script vai gravar as imagens geradas
$dst = "./convertidas";

//final config

// calcula e informa o tamanho da foto para visualização
function detecta_tamanho_visualiza($img) {
	$vetor[0] = imagesx($img);
	$vetor[1] = imagesy($img);

	return $vetor;
}

// função para processos graficos da foto.
function criafoto($arquivo) {

	global $tx_compressao, $tx_correcao, $arq_marca_h, $arq_marca_v, $dir, $dst;

	// carrega foto original
	$foto = imagecreatefromjpeg("$dir/$arquivo");

	// determina o posicionamento da foto, vertical ou horizontal
	if (imagesx($foto) > imagesy($foto)) {
  // imagem da marca horizontal
  $marca = imagecreatefrompng("$arq_marca_h");
	} else {
  // imagem da marca vertical
  $marca = imagecreatefrompng("$arq_marca_v");
	}

	// carrega o tamanho da imagem para visualização
	$tamV = detecta_tamanho_visualiza($marca);

  // transparencia, para o exemplo, o fundo da imagem marca.png deve ser branco
	imagecolortransparent($marca, imagecolorallocate($marca, 0, 225, 0));

	// gera imagens que resultarão na imagem final
	$final = imagecreatetruecolor($tamV[0], $tamV[1]);

	// copia o conteudo da imagem original para o imagem resultado final
	imagecopyresampled($final, $foto, 0, 0, 0, 0, $tamV[0], $tamV[1], imagesx($foto), imagesy($foto));

	// aplica correção de gamma (brilho e contraste)
	imagegammacorrect($final, 0.9, $tx_correcao);

	// coloca a marca d`água
	imagecopyresampled($final, $marca, 0, 0, 0, 0, $tamV[0], $tamV[1], $tamV[0], $tamV[1]);

	// gera foto na pasta destino
	imagejpeg($final, "$dst/$arquivo", $tx_compressao);

}

// procedimento para realizar o processo para todos os arquivos da pasta configurada.
if (is_dir($dir)) {
    if ($pasta = opendir($dir)) {
        while (($arq_imagem = readdir($pasta)) !== false) {
 	 if (!(($arq_imagem == ".") || ($arq_imagem == "..")))
             criafoto($arq_imagem);
        }
        closedir($pasta);
    }
}

echo "concluido!";
exit;
?>


#2 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 10/02/2005, 18:17

para vc fazer varios uploads de uma vez só faça assim:

<?

//Diretório aonde ficará os arquivos
$dir = "./diretorio/";

//Extensões permitidas
$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE
$campos = 6;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  <input type="submit" name="submit" value=" OK ">
  </form>';
 
 
//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];

//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

    if ($cont==0) {
      echo "<b>Arquivo(s) enviados:<br /></b>";
    }
      echo $name." - ";

      //Movendo arquivo's do upload
      $up = copy($f_tmp[$i], $dir.$name);

        //Status
        if ($up==true):
            echo  "<i>Enviado!</i>";
              $cont++;
        else:
            echo "<i>Falhou!</i>";
        endif;

      echo "<br />";
  }

}

echo ($cont!=0) ? "<br><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>





T+ (y)

#3 AMDeus

AMDeus

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 11/02/2005, 00:37

agora, tem como uni-los?




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq