Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma galeria e quero gerar uma thumb quadrada do centro da imagem para exibição na galeria! E ao clicar na foto, aparece a imagem full.
O upload da imagem full já funciona tranquilo e exibição também, mas a thumb atual que utilizo é a imagem full redimensionada pra 180x180. Quando a imagem é retangular, fica horrorosa.
Preciso COPIAR uma parte quadrada (180x180) do centro da imagem e copiar para uma pasta.
Como fazer?
Meu codigo atual de upload:
<div class="esconde">
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="imagem" required class="file" accept="image/*">
<input type="submit" class="submit" name="adicionar" value="Adicionar Imagem">
</form>
</div>
<?php if (isset($_POST['adicionar'])) {
if (strlen($_FILES['imagem']['name']) > 2) {
$imagem = remove_acentos($_FILES['imagem']['name']);
$imagem_tamanho = $_FILES['imagem']['size'];
$imagem_tipo = $_FILES['imagem']['type'];
$filecheck = basename($imagem);
$ext = strtolower(substr($filecheck, strrpos($filecheck, '.') + 1));
if (!(($ext == "jpg" || $ext == "gif" || $ext == "png") && ($_FILES["imagem"]["type"] == "image/jpeg" || $_FILES["imagem"]["type"] == "image/gif" || $_FILES["imagem"]["type"] == "image/png")))
{ ?>
<div class="red_alert">
<p> Arquivos de extensão <strong>.<?php echo $ext; ?></strong> não podem ser aceitos. Apenas .jpg, .png e .gif são permitidos.</p>
</div>
<?php mysql_close(); } elseif (!($_FILES["imagem"]["size"] < 2120000)) { ?>
<div class="red_alert">
<p>A foto deve ter no máximo 2MB. Tente novamente.</p>
</div>
<?php mysql_close(); }
elseif (empty($_FILES['imagem'])) { ?>
<div class="red_alert">
<p>Você não selecionou nenhuma foto. Tente novamente.</p>
</div>
<?php mysql_close(); } else {
// sucesso! cadastra a imagem
$imagem_data = date_default_timezone_set('America/Sao_Paulo');
$uploaddir = "../uploads/fotos/";
$rename = mktime();
if ($imagem != "")
{
if (file_exists($uploaddir.$imagem))
{
$imagem = $rename."_".$imagem;
}
}
move_uploaded_file($_FILES['imagem']['tmp_name'], $uploaddir . $imagem);
$query_ft = mysql_query("INSERT INTO fotos (imagem, id_galeria) VALUES ('$imagem','$id_m')");
}
?>
Funciona bem.
Faz o upload pra pasta. Salva o nome dela no banco e eu puxo pela pagina de exibição, normal.
Agora só falta o thumb, como expliquei acima.
Obrigado!
Carregando comentários...