Ir para conteúdo
Fórum Script Brasil
  • 0

Imagem rotacionando sozinha


Nik Oliveira

Pergunta

Fala pessoal,

Tenho a seguinte função:

function MarcaDagua($img, $img_marca_dagua){

	if (strpos($img_marca_dagua, '.png') !== false){
		header("Content-type: image/jpeg; image/png"); 
		$i2 = imagecreatefrompng($img_marca_dagua); 
	}else if (strpos($img_marca_dagua, '.gif') !== false){
		header("Content-type: image/jpeg; image/gif"); 
		$i2 = imagecreatefromgif($img_marca_dagua); 
	}else{
		exit('');
	}
	$i = imagecreatefromjpeg($img); 
	
	imagecopyresampled($i, $i2,0,0,0,0, imagesx($i2), imagesy($i2), imagesx($i2), imagesy($i2)); //cordenas
	imagejpeg($i); 
	imagedestroy($i);
}

Funciona bem para colocar marca d'agua nas fotos, porem está rotacionando algumas imagens.

Se eu acessar o link direto da imagem ela aparece normal, mas acessando através do link que chama esta função fica rotacionada:

	$img = 'minha_imagem.jpg';
	$img_marca_dagua = 'marda_dagua.png';
	exit(MarcaDagua($img, $img_marca_dagua));

alguém já passou por isso?

É possivel a função imagecreatefromjpeg() ou imagejpeg() girar a imagem?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Apenas em algumas, mas segue um padrão:

As fotos que foram batidas com a câmera virada e depois foram ajustadas pelo windows, continuam viradas quando carrego pela função imagejpeg(), mas quando acesso ela direto no link ela se mostra correta (virada pelo windows).

E o mais estranho.. no ie ela mostra virada, mas no chrome e firefox mostra correta, parece que eles consideram modos diferentes de capturar as dimensões da imagem.

Veja um exemplo:

Abra essa imagem no ie e no chrome ou firefox:

http://danielpaulsen.com.br/si-admin/upload/4_8_(1515).jpg

você verá o que falo, so no ie ela não considera a nova dimensão.

Essa é a resposta do vardump do getimagesize() desta imagem:

array(7) {
  [0]=>
  int(352)
  [1]=>
  int(234)
  [2]=>
  int(2)
  [3]=>
  string(24) "width="352" height="234""
  ["bits"]=>
  int(8)
  ["channels"]=>
  int(3)
  ["mime"]=>
  string(10) "image/jpeg"
}

Mas note q as novas dimensões estão invertidas, o correto é: width="234" height="352"

Link para o comentário
Compartilhar em outros sites

  • 0

Cara pela sua descrição isso parece ser um problema do browser, visto que não acontece com Chrome e FireFox e apenas acontece com Intert explorer. Você pode utilizar CSS para resolver esse problema (imagem apenas aparece invertida no IE). Com CSS você pode rodar imagens condicionalmente. Criei um exemplo no jsFiddle para você ver como fica. Depois basta utilizar a nova propriedade do CSS3 transform para rodar a imagem. Alguma duvida manda mensagem

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...