A miniatura não está sendo redimensionada... ele vai com o tamanho total.... não diminui... porque?
[codebox] function Adicionar($nome, $categoria, $foto, $legenda){
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto, $ext);
$foto_id = md5(uniqid(time()));
$foto_nome = $foto_id.".".$ext[1];
$foto_miniatura = "mini_".$foto_nome;
$diretorio = "../fotos/";
$arquivo = $diretorio.$foto_nome;
$miniatura = $diretorio.$foto_miniatura;
$arquivoDB = "fotos/".$foto_nome;
$miniaturaDB = "fotos/".$foto_miniatura;
$legenda = trocaAspas($legenda);
if (!copy($foto, $arquivo)) {
print "Erro ao copiar arquivo";
die();
}
if(!copy($foto, $miniatura)){
print "erro ao copiar miniatura";
die();
}
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo, $ext);
if ($ext[1] == 'jpg' || $ext[1] == 'jpeg') {
$img_orig = imagecreatefromjpeg($arquivo);
}
if ($ext[1] == 'gif'){
$img_orig = imagecreatefromgif($arquivo);
}
if ($ext[1] == 'png'){
$img_orig = imagecreatefrompng($arquivo);
}
if(isset($img_orig)) {
//Tamanho da imagem
$width = imagesx($img_orig);
$height = imagesy($img_orig);
//Novo tamanho da imagem calculado pelo padrao e mantendo a proporo
$tamanhoArray = mantemProporcao($height, $width, 400, 325);
$img_width = $tamanhoArray[1];
$img_height = $tamanhoArray[0];
$img_padrao = imagecreatetruecolor($img_width, $img_height);
//Copia a imgem original para dentro
imagecopyresampled($img_padrao, $img_orig, 0, 0, 0, 0, $img_width+1, $img_height+1, $width, $height);
//Salva a imagem
unlink($arquivo);
$status = imagejpeg($img_padrao, $arquivo, 100);
//move_uploaded_file($status, $diretorio.$foto_nome)or die("erro movendo a img");;
}
if ($ext[1] == 'jpg' || $ext[1] == 'jpeg') {
$img_orig = imagecreatefromjpeg($miniatura);
}
if ($ext[1] == 'gif'){
$img_orig = imagecreatefromgif($miniatura);
}
if ($ext[1] == 'png'){
$img_orig = imagecreatefrompng($miniatura);
}
if(isset($img_orig)) {
//Tamanho da imagem
$width = imagesx($img_orig);
$height = imagesy($img_orig);
//Novo tamanho da imagem calculado pelo padrao e mantendo a proporcao
$tamanhoArray = mantemProporcao($height, $width, 100, 100);
$img_width = $tamanhoArray[1];
$img_height = $tamanhoArray[0];
$img_padrao = imagecreatetruecolor($img_width, $img_height);
//Copia a imagem original para dentro
imagecopyresampled($img_padrao, $img_orig, 0, 0, 0, 0, $img_width+1, $img_height+1, $width, $height);
//Salva a imgem
unlink($miniatura);
$status = imagejpeg($img_padrao, $miniatura, 100);
//Libera a memoria
imagedestroy($img_orig);
imagedestroy($img_padrao);
}
$erro = upload($foto, $foto_id, $diretorio, 400, 325) or die("Erro no upload.");
$erro1 = upload($foto, "mini_".$foto_id, $diretorio, 100, 100) or die("Erro no upload da miniatura.");
if(!$erro){
echo "erro no upload"; die();
}
if(!$erro1){
echo "erro no upload"; die();
}
$legenda = nl2br($legenda);
$sql = "INSERT INTO galeria (nome, categoria, foto, miniatura, legenda) VALUES ('$nome', '$categoria', '$arquivoDB', '$miniaturaDB', '$legenda');";
return $this-> DB->Execute($sql) or die($this->DB->ErrorMsg());
}[/codebox]
abaixo as duas funcoes utilizadas
[codebox]function mantemProporcao($height, $width, $height_padrao, $width_padrao) {
$scale = min($width_padrao/$width, $height_padrao/$height);
// Se a imagem maior que o permitido, encolhe ela!
if ($scale < 1) {
$tamanhoArray[0] = floor($scale * $height);
$tamanhoArray[1] = floor($scale * $width);
}
else {
$tamanhoArray[0] = $height;
$tamanhoArray[1] = $width;
}
return $tamanhoArray;
}
function upload($arquivo, $imagem_id, $diretorio, $width_padrao, $height_padrao) {
// Verifica se o mime-type do arquivo de imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|jpg|JPG)$", $arquivo["type"])) {
$msgErro = "<font style='color: #CC0000';>ERRO:</font> Arquivo em formato invalido. A imagem deve ser jpg, jpeg, gif ou png.";
return $msgErro;
}
// Verificao de dados OK, nenhum erro ocorrido, executa ento o upload...
else {
// Pega extenso do arquivo
preg_match("/\.(gif|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Gera um nome nico para a imagem seguido pela extenso
$imagem_nome = $imagem_id . "." . $ext[1];
// Caminho onde a imagem ficar
$imagem_dir = $diretorio.$imagem_nome;
/*
// **** REDIMENSIONAMENTO DA IMAGEM ****
*/
// Cria uma nova imagem
if ($arquivo["type"] == 'image/pjpeg' || $arquivo["type"] == 'image/jpeg') {
$img_orig = imagecreatefromjpeg($arquivo["tmp_name"]);
}
if ($arquivo["type"] == 'image/gif'){
$img_orig = imagecreatefromgif($arquivo["tmp_name"]);
}
if ($arquivo["type"] == 'image/x-png' || $arquivo["type"] == 'image/png'){
$img_orig = imagecreatefrompng($arquivo["tmp_name"]);
}
if(isset($img_orig)) {
//Tamanho da imagem
$width = imagesx($img_orig);
$height = imagesy($img_orig);
//Novo tamanho da imagem calculado pelo padrao e mantendo a proporo
$tamanhoArray = mantemProporcao($height, $width, $height_padrao, $width_padrao);
$img_width = $tamanhoArray[1];
$img_height = $tamanhoArray[0];
$img_padrao = imagecreatetruecolor($img_width, $img_height);
//Copia a imgem original para dentro
imagecopyresampled($img_padrao, $img_orig, 0, 0, 0, 0, $img_width+1, $img_height+1, $width, $height);
//Salva a imgem
$status = imagejpeg($img_padrao, $imagem_dir, 100);
//move_uploaded_file($status, $diretorio.$foto_nome)or die("erro movendo a img");;
//Libera a memria
imagedestroy($img_orig);
imagedestroy($img_padrao);
} else {
$msgErro = "<font style='color: #CC0000';>ERRO:</font> Falha no redimensionamento da foto. Tente novamente";
return $msgErro;
}
/*
**************************************
*/
// Retorna uma msg indicando 0 erros
return FALSE;
}
}[/codebox]
Podem me ajudar?
Edição feita por: savior, 23/01/2008, 20:53.