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

Trabalhando Com Imagens...


ViniciusJau

Pergunta

e ai maiorçada beleza ??

eu to usando esse código, ele pega uma imagem e cria outra imagem "temporaria" com tamanho menor, porém a imagem é controlada em porcentagem:

<?php

$filename = 'arquivo.jpg';

$percent = 0.5;

header('Content-type: image/jpeg');

list($width, $height) = getimagesize($filename);

$newwidth = $width * $percent;

$newheight = $height * $percent;

$thumb = imagecreate($newwidth, $newheight);

$source = imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb);

?>

minha duvida é como eu faço para gerar essa imagem por pixels por exemplo eudefinir 300px de largura... ?

abraços

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Opa!

Velhinho, tu está definindo o tamanho nas variáveis $newwidth e $newheight, só que com a porcentagem tu faz isso dinâmicamente, mas se quiser definir valores constantes, toca ali direto o valor.

$newwidth = 300;

$newheigth = $newwidth / 1.33; //esse aqui gera conforme as resoluções de tela do micro... (1024/768 = 1.33333...)

Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

legal.. deu certo em partes rs...

<?php

$filename = 'arquivo.jpg';

header('Content-type: image/jpeg');

list($width, $height) = getimagesize($filename);

$newwidth = "200";

$newheight = "100";

$thumb = imagecreate($newwidth, $newheight);

$source = imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb);

?>

se eu deixar o codigo dessa forma ele funciona legal... porém eu mudei para:

<?php

$filename = 'arquivo.jpg';

$percent = 1.33;

header('Content-type: image/jpeg');

list($width, $height) = getimagesize($filename);

$newwidth = "200";

$newheight = $height * $percent;

$thumb = imagecreate($newwidth);

$source = imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb);

?>

tirando os atributos da altura, para não distorcer a imagem, mais dai ele dá erro... como eu tenho que fazer para ele pegar a altura proporcionalmente ??

Link para o comentário
Compartilhar em outros sites

  • 0

Velho, se tu dividir 1024/768 ou 800/600 todos os resultados chegarão a 1.33... (periódica). Bom essa é a razão de proporção que nós utilizamos no nosso micro :D

Seria somente dividir o valor do comprimento por 1.33 que tu chegarás a altura proporcional. Como no teu caso tu estás estabelecendo o valor da largura em 200px, tu terias que calcular a altura sobre esse valor e não o da imagem, porque digamos que tenhamos uma imagem salva com 800x600 ao criar a thumbnail o valorda largura de 800 passa a ser 200 e o da altura de 600 passaria a ser 451.12 o que seria 600/1.33 (calc pego :D), entendeu???

Na verdade a altura ali seria constante, eu coloquei esse calculo pra dinamizar e tu saberes de onde eu tirei aquele número maluco par aaltura :D

Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

É, esse é um problema que tem que ser verificado por diversos ifs e talvez a ajuda de um ser superior morador de marte ou júpter com intelgência superior ou até mesmo a gente pensar um pouquinho iuahiuhaiuahiuahuiahuaih

Se eu conseguir parar pra pensar um pouco eu cejo se consigo uma solução :D

Link para o comentário
Compartilhar em outros sites

  • 0

rs..... você tá certo eu vou rachar a cuca aqui e se conseguir eu posto também rs..

valeu pela força cara.

abraços...

EDITADO --------------------------------------------------------------------------

saca só esse aqui funcionou legal, e funcionou deixando a imagem proporcionalmente mesmo eu colocando 100 de largura e 10 0de altura...

<?php

function thumbnail($imagem, $width, $height)

{

//DEFINE OS PARÂMETROS DA MINIATURA

define('MAX_WIDTH', $width);

define('MAX_HEIGHT', $height);

// Largura(width) do thumbnail

// Captura a largura e altura da imagem

$tamanho = getimagesize($imagem);

$w_imagem = $tamanho[0];

$h_imagem = $tamanho[1];

// Calcula a altura da miniatura proporcionalmente a imagem original.

$escala = min(MAX_WIDTH/$w_imagem, MAX_HEIGHT/$h_imagem);

if ($escala < 1) {

$w_thumbnail = floor($escala*$w_imagem);

$h_thumbnail = floor($escala*$h_imagem);

}

else

{

$w_thumbnail = $w_imagem;

$h_thumbnail = $h_imagem;

}

//NOME DO ARQUIVO DA MINIATURA

$imagem_gerada = explode(".", $imagem);

$imagem_gerada = $imagem_gerada[0]."_mini.jpg";

//CRIA UMA NOVA IMAGEM

$imagem_orig = @ImageCreateFromGIF($imagem);

if (!($imagem_orig))

{

$imagem_orig = @ImageCreateFromJPEG($imagem);

}

//LARGURA

$pontoX = ImagesX($imagem_orig);

//ALTURA

$pontoY = ImagesY($imagem_orig);

//CRIA O THUMBNAIL

$imagem_fin = ImageCreateTrueColor($w_thumbnail, $h_thumbnail);

//COPIA A IMAGEM ORIGINAL PARA DENTRO

ImageCopyResampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $w_thumbnail+1, $h_thumbnail+1, $pontoX, $pontoY);

//SALVA A IMAGEM

imagejpeg($imagem_fin, $imagem_gerada, "80");

//LIBERA A MEMÓRIA

ImageDestroy($imagem_orig);

ImageDestroy($imagem_fin);

return $imagem_gerada;

}

thumbnail("arquivo.jpg", 100, 100);

?>

:rolleyes:

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...