Array
(
)

Redimensionamento de imagem

PHP
Marcos Amaral
   - 30 jan 2014

Tenho essa rotina no meu sistema:
<?php
// Conexão com o banco de dados
$conn = @mysql_connect("mysql01.mundotruck1.hospedagemdesites.ws", "mundotruck1", "Re190475") or die ("Problemas na conexão.");
$db = @mysql_select_db("mundotruck1", $conn) or die ("Problemas na conexão");
// Se o usuário clicou no botão cadastrar efetua as ações
if ($_POST['cadastrar']) {

// Recupera os dados dos campos
$nome = $_POST['nome'];
$email = $_POST['email'];
$foto = $_FILES["foto"];

// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {

// Largura máxima em pixels
$largura = 3000;
// Altura máxima em pixels
$altura = 3000;
// Tamanho máximo do arquivo em bytes
$tamanho = 5000;
// Verifica se o arquivo é uma imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg)$", $foto["type"])){
$error[1] = "Isso não é uma imagem.";
}

// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);

// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}

// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($arquivo["size"] > $tamanho) {
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}
// Se não houver nenhum erro
if (count($error) == 0) {

// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);
// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
// Caminho de onde ficará a imagem
$caminho_imagem = "../admin/fotos/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);

// Insere os dados no banco
$sql = mysql_query("INSERT INTO fotos VALUES ('', '".$nome."', '".$email."', '".$nome_imagem."')");

// Se os dados forem inseridos com sucesso
if ($sql){
echo "Você foi cadastrado com sucesso.";
}
}

// Se houver mensagens de erro, exibe-as
if (count($error) != 0) {
foreach ($error as $erro) {
echo $erro . "<br />";
}
}
}
}
?>
Como faço para colocar uma rotina de redimensionamento de imagem?
Fico no aguardo.
Marcos

William (devwilliam)
   - 30 jan 2014

Marcos esses links tem material para lhe ajudar:

Artigo 1

Artigo 2

Artigo 3

Marcio Araujo
   - 30 jan 2014

William, opnião pessoal, vc acha melhor fazer isso com a linguagem ou seria melhor fazer com os recursos front-end?

William (devwilliam)
   - 31 jan 2014

Márcio sinceramente, não gosto de lidar com imagens em nenhum dos dois (FRONT-END ou BACK-END), presenciei um fotógrafo tirando fotos para serem postadas em um site grande, existe toda uma sistemática para esse tipo de foto com iluminação, angulação e etc., a máquina fotográfica dele era quase um computador de modernidade ..s.rsrsrsrsr

Ai vai eu um programador que não manja nada de fotografia e altera as dimensões apenas baseado em cálculos para acertar minha div ou tabela e acaba ferrando com a foto do cara, esticando aqui ... encolhendo lá ...

Se for só imagens mesmo é preferível acertar em um potoshop ou fireworks da vida que fica melhor ...

Marcio Araujo
   - 06 fev 2014

vish...entendi, no caso, conheço pouco o gimp e o inkscape, softwares gratuitos.

Marcos Amaral
   - 07 fev 2014

Boa noite,

Willian, verifique os 3 artigos, o que mais achei que ficaria certo para mim seria o Artigo 3, abri o exemplo fiz o que o autor pedi para fazer só que não consegui identificar onde coloco a função que redimensiona a imagem, sera que voce pode me ajudar.

Abraços

Marcos