Estou desenvolvendo um sisteminha de notícias e na index do site ele lista as notícias cadastradas, na coluna Destaque preciso que ele gere miniatura da imagem referente ao destaque, mas não estou conseguindo, mesmo com a biblioteca GD instalada, e o caminho estando correto, já tentei com caminho absoluto, com URL e nada
<?PHP
ob_start();
echo "entrei";
/** Arquivo: thumb.php
* Autor: Mauricio Wolff .:. organiKa
* baseado no trabalho de Michael Bailey
***/
// Constantes: variaveis que não mudam em todo o programa
// path do win2k. no unix, mude de 'd:/path' para '/home/usuario/www'
define(PATH_IMG, 'home/httpd/dominio.com.br/html/projetos/admin/noticias/not_imagens');
define(MAX_WIDTH, 100);
define(MAX_HEIGHT, 80);
echo "<br> dentro do thumb ".$arq;
# Pega onde está a imagem
$image_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
$image_path = PATH_IMG . '/'.$image_file;
echo "<br>Arq ".$image_file;
echo "<br>Caminho ".$image_path;
# Carrega a imagem
$img = null;
$extensao = strtolower(end(explode('.', $image_path)));
if ($extensao == 'jpg' || $extensao == 'jpeg') {
$img = @imagecreatefromjpeg($image_path);
} else if ($extensao == 'png') {
$img = @imagecreatefrompng($image_path);
// Se a versão do GD incluir suporte a GIF, mostra...
} else if ($extensao == 'gif') {
$img = @imagecreatefromgif($image_path);
}
// Se a imagem foi carregada com sucesso, testa o tamanho da mesma
if ($img) {
// Pega o tamanho da imagem e proporção de resize
$width = imagesx($img);
$height = imagesy($img);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
// Se a imagem é maior que o permitido, encolhe ela!
if ($scale < 1) {
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);
// Cria uma imagem temporária
$tmp_img = imagecreatetruecolor($new_width, $new_height);
// Copia e resize a imagem velha na nova
imagecopyresampled($tmp_img, $img, 0, 0, 0, 0,
$new_width, $new_height, $width, $height);
imagedestroy($img);
$img = $tmp_img;
}
}
// Cria uma imagem de erro se necessário
if (!$img) {
$img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
imagecolorallocate($img,204,204,204);
$c = imagecolorallocate($img,153,153,153);
$c1 = imagecolorallocate($img,0,0,0);
imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c);
imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c);
imagestring($img, 2, 12, 55, 'erro ao carregar imagem',$c1 );
}
// Mostra a imagem
header('Content-type: image/jpeg');
imagejpeg($img);
ob_end_flush();
?>
Pergunta
Andreia Regina
Olá!
Primeiramente um belíssimo 2006 a todos!!!
Estou desenvolvendo um sisteminha de notícias e na index do site ele lista as notícias cadastradas, na coluna Destaque preciso que ele gere miniatura da imagem referente ao destaque, mas não estou conseguindo, mesmo com a biblioteca GD instalada, e o caminho estando correto, já tentei com caminho absoluto, com URL e nada
Codigo do index:
$sql = mysql_query("SELECT * FROM tb_noticias WHERE destaque='on' AND exibir='on' ORDER BY id DESC LIMIT 0,3"); $n_registros = mysql_num_rows($sql); if ($n_registros>0) { ?> <h3> :: Destaque :: </h3> <table width="100%"> <?php while($row = mysql_fetch_array($sql)) { $arq = $row["imagem"]; $not_destaque= $row["noticia"]; $titulo_dest = $row["titulo"]; ?> <tr> <td colspan="2"> <?php echo "<p> <strong>". $titulo_dest ."</strong></p>"; ?> </td> </tr> <tr> <td align="center" width="20%" valign="middle"> <div class="destaque_img"> <?php echo "<img src=\"admin/diversos/thumb.php?'.$arq;'\" />'"; echo "<br>".$arq; ?> </td> <td align="justify"> <?php echo (strlen($not_destaque) > 250) ? substr($not_destaque, 0, 250) . '...' : $not_destaque . " "; ?> </td> </tr>E a thumb.php:<?PHP ob_start(); echo "entrei"; /** Arquivo: thumb.php * Autor: Mauricio Wolff .:. organiKa * baseado no trabalho de Michael Bailey ***/ // Constantes: variaveis que não mudam em todo o programa // path do win2k. no unix, mude de 'd:/path' para '/home/usuario/www' define(PATH_IMG, 'home/httpd/dominio.com.br/html/projetos/admin/noticias/not_imagens'); define(MAX_WIDTH, 100); define(MAX_HEIGHT, 80); echo "<br> dentro do thumb ".$arq; # Pega onde está a imagem $image_file = str_replace('..', '', $_SERVER['QUERY_STRING']); $image_path = PATH_IMG . '/'.$image_file; echo "<br>Arq ".$image_file; echo "<br>Caminho ".$image_path; # Carrega a imagem $img = null; $extensao = strtolower(end(explode('.', $image_path))); if ($extensao == 'jpg' || $extensao == 'jpeg') { $img = @imagecreatefromjpeg($image_path); } else if ($extensao == 'png') { $img = @imagecreatefrompng($image_path); // Se a versão do GD incluir suporte a GIF, mostra... } else if ($extensao == 'gif') { $img = @imagecreatefromgif($image_path); } // Se a imagem foi carregada com sucesso, testa o tamanho da mesma if ($img) { // Pega o tamanho da imagem e proporção de resize $width = imagesx($img); $height = imagesy($img); $scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height); // Se a imagem é maior que o permitido, encolhe ela! if ($scale < 1) { $new_width = floor($scale*$width); $new_height = floor($scale*$height); // Cria uma imagem temporária $tmp_img = imagecreatetruecolor($new_width, $new_height); // Copia e resize a imagem velha na nova imagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagedestroy($img); $img = $tmp_img; } } // Cria uma imagem de erro se necessário if (!$img) { $img = imagecreate(MAX_WIDTH, MAX_HEIGHT); imagecolorallocate($img,204,204,204); $c = imagecolorallocate($img,153,153,153); $c1 = imagecolorallocate($img,0,0,0); imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c); imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c); imagestring($img, 2, 12, 55, 'erro ao carregar imagem',$c1 ); } // Mostra a imagem header('Content-type: image/jpeg'); imagejpeg($img); ob_end_flush(); ?>Desde já agradeço a atenção
Link para o comentário
Compartilhar em outros sites
1 resposta 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.