Ir para conteúdo

Arquivado

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

velys

Classe redimensionamento de Imagem com Marca d'água

Recommended Posts

Tenho uma classe de redimensionamento de imagens e gostaria de acrescentar Marca d'agua nela e não estou conseguindo alguem pode me ajudar?
ai vai minha classe

//CLASSE DE IMAGEM, GERA MINIATURA
class manipulaImagens{
function manipulaImagens(){
$this->imagem='';
$this->tipo='';
$this->maxLargura=0;
$this->maxAltura=0;
$this->radical='';
$this->id=0;
$this->tabela='';
$this->campoimg='';
$this->campoid='';
$this->destino='';
$this->quad=false;
$this->ext='';
$this->msg='';
$this->imgInfos='';
}
function verificaTipo($imagem, $tipo){
$this->imagem=$imagem;
$this->tipo=$tipo;
if($this->imagem!='none'){
if($this->tipo=='image/pjpeg' || $this->tipo=='image/jpeg'){
$this->ext='.jpg';
$this->img = imagecreatefromjpeg($this->imagem);
}else if($this->tipo=='image/gif'){
$this->ext='.gif';
$this->img = imagecreatefromgif($this->imagem);
}else{
$this->msg="Tipo inválido de arquivo";
}
$this->finaliza();
}
}
function verificaTamanhoImg($imagem){
$this->maxLargura=$maxLargura;
$this->maxAltura=$maxAltura;
$this->imgInfos = getimagesize($this->imagem);
// PEGANDO INFORMAÇÕES DA IMAGEM
$this->larguraAtual = $this->imgInfos[0];
$larguraAtual = $this->imgInfos[0];
$this->alturaAtual = $alturaAtual = $this->imgInfos[1];
if( $larguraAtual < 500 or $alturaAtual < 600 ){
$this->msg="Tipo inválido de imagem. </br>Essa Imagem é muito pequena. </br>Envie uma imagem maior</br></br> Imagem enviada tem o tamanho de ".$alturaAtual."x".$larguraAtual." pixels e deve ter no minimo 800x800pxls";
}
$this->finaliza();
}
function verificaImgIgual($imagem){
$this->maxLargura=$maxLargura;
$this->maxAltura=$maxAltura;
$this->imgInfos = getimagesize($this->imagem);
// PEGANDO INFORMAÇÕES DA IMAGEM
$this->larguraAtual = $this->imgInfos[0];
$larguraAtual = $this->imgInfos[0];
$this->alturaAtual = $alturaAtual = $this->imgInfos[1];
if( $larguraAtual == 300 and $alturaAtual == 250 ){
}
else{
$this->msg="Tipo inválido de imagem.
</br>Envie uma imagem do tamanho exato de 300x250px</br></br> Imagem enviada tem o tamanho de altura de".$alturaAtual."px e comprimento de".$larguraAtual." px e deve ter exatamente altura = 250px e comprimento = 300px";
}
$this->finaliza();
}
function setaDimensoes($maxLargura, $maxAltura, $quad=false){
$this->maxLargura=$maxLargura;
$this->maxAltura=$maxAltura;
$this->imgInfos = getimagesize($this->imagem);
// PEGANDO INFORMAÇÕES DA IMAGEM
$this->larguraAtual = $this->imgInfos[0];
$larguraAtual = $this->imgInfos[0];
$this->alturaAtual = $alturaAtual = $this->imgInfos[1];
if( $larguraAtual < 600 or $alturaAtual < 600 ){
$this->msg="Tipo inválido de imagem. </br>Essa Imagem é muito pequena. </br>Envie uma imagem maior</br></br> Imagem enviada tem o tamanho de ".$alturaAtual."x".$larguraAtual." pixels e deve ter no minimo 800x800pxls";
}
if( $larguraAtual > $maxLargura && $alturaAtual <= $maxAltura ){
$ratio = $maxLargura / $larguraAtual;
}elseif( $alturaAtual > $maxAltura && $larguraAtual <= $maxLargura ){
$ratio = $maxAltura / $alturaAtual;
}elseif( $larguraAtual > $maxLargura && $alturaAtual > $maxAltura ){
$ratio1 = $maxLargura / $larguraAtual;
$ratio2 = $maxAltura / $alturaAtual;
$ratio = ($ratio1 < $ratio2)? $ratio1:$ratio2;
}else{
$ratio = 1;
}
$larguraNova = floor($larguraAtual*$ratio);
$alturaNova = floor($alturaAtual*$ratio);
$canvas = imagecreatetruecolor ($larguraNova,$alturaNova);
$posx=0;
$posy=0;
//SETANDO IMAGEM QUADRADINHA
if($quad==true){
$dim=$maxLargura;
if($larguraNova>$alturaNova){
$alturaNova = $dim;
$larguraNova = $larguraAtual * $dim / $alturaAtual;
$sobra = ($larguraNova - $dim) / 2;
$posx=-$sobra;
}else{
$larguraNova = $dim;
$alturaNova = $alturaAtual * $dim / $larguraAtual;
$sobra = ($alturaAtual - $dim) / 2;
$posy=-$sobra;
}
$canvas = imagecreatetruecolor ($dim,$dim);
}
$this->larguraNova=$larguraNova;
$this->alturaNova=$alturaNova;
$this->canvas=$canvas;
$this->posx=$posx;
$this->posy=$posy;
}
function salvaImagem($radical,$id, $destino, $tabela, $campoImg, $campoId){
$dt=date("Hidmy");
$nome=$radical.'_'.md5($id).$dt.$this->ext;
$bgc = imagecolorallocate($this->canvas, 255, 255, 255);
imagefilledrectangle($this->canvas, 0, 0, 60, 60, $bgc);
imagecopyresampled($this->canvas, $this->img, $this->posx, $this->posy, 0, 0,
$this->larguraNova, $this->alturaNova, $this->larguraAtual, $this->alturaAtual);
if(file_exists($destino.$nome)){
unlink($destino.$nome);
}
imagejpeg($this->canvas,$destino.$nome);
$db= new bancoDeDados();
$sql="UPDATE $tabela SET $campoImg= '$nome' where $campoId=$id";
$rs=mysql_query($sql, $db->con);
}
// SE TEM MSG DE ERRO MANDA PRA PAGINA msg.php
function finaliza(){
if($this->msg!=''){
$_SESSION['MENSAGEM'] = $this->msg;
header('location: msg.php#msg');
exit;
}
}
}
// FIM DA CLASSE manipulaImagens

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Rogério Dias
      Prezados amigos, bom dia.
      Estou criando uma rede social onde os usuários publicarão suas fotos e preciso colocar a marca dágua nas fotos para evitar o roubo e uso indevido da imagem. Porém, essa marca dágua será com o nome do usuário logado. Exemplo: O meu nome de usuário é rdiasf e caso eu salve a imagem no meu PC, a foto será salva com a marca dágua com o meu nome de usuário espalhado pela imagem. Desta forma, se a pessoa utilizar a imagem ficará fácil identificar quem fez o download da imagem.
       
      Exemplo:
      O usuário X acessa o perfil do usuário Y.... clica para ver as fotos...
      Quero que as fotos tenham uma marca d'agua com o nome do usuário visitante, pois, caso ele "roube" esta foto, ela será salva com o nome do usuário que fez o download. Daí, será possível identificar quem fez o download e banir este usuário da rede.
       
      Se o usuário X visitar uma foto de um outro perfil... esta foto terá a marca "usuário X" espalhado por ela.
      Se o usuário Z visitar a mesma foto no mesmo momento, a foto terá a marca "usuário Z" espalhado por ela.
       
      Como faço isso?
×

Informação importante

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