ViniciusJau Postado Abril 25, 2006 Denunciar Share Postado Abril 25, 2006 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lemissel Postado Abril 25, 2006 Denunciar Share Postado Abril 25, 2006 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Abril 25, 2006 Autor Denunciar Share Postado Abril 25, 2006 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 ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lemissel Postado Abril 25, 2006 Denunciar Share Postado Abril 25, 2006 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 :DSeria 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 :DAbraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Abril 25, 2006 Autor Denunciar Share Postado Abril 25, 2006 ahn está.. eu entedi agora sim rs... o problema que eu to pensando é que vai que alguém fizer o upload de uma imagem que tiver por exemplo 800x500 dai vai distorcer toda a imagem.. por isso joguei porcentagem lá... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lemissel Postado Abril 25, 2006 Denunciar Share Postado Abril 25, 2006 É, 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 iuahiuhaiuahiuahuiahuaihSe eu conseguir parar pra pensar um pouco eu cejo se consigo uma solução :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Abril 25, 2006 Autor Denunciar Share Postado Abril 25, 2006 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...<?phpfunction 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: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ViniciusJau
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:
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
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.