Upload e Resize de Imagens em Delphi for PHP
Fistsoft-sistemas Empresarial-ltda;
Respostas
Rodrigo Mourão
05/08/2009
A resposta para sua dúvida esta numa vídeo de minha autoria no site da devmedia. La eu ensino a fazer isso. Segue o link:
https://www.devmedia.com.br/articles/viewcomp.asp?comp=9432
Caso não tenha acesso a vídeo nos avise para que possamos liberá-la sem custo para você
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Rodrigo Mourão
05/08/2009
User esta calsse aqui:
http://m2brimagem.googlecode.com/files/m2brimagem.class.0.6.3.php
Veja um exemplo:
<?php
include('m2brimagem.class.php');
$oImg = new m2brimagem('1.jpg');
$valida = $oImg->valida();
if ($valida == 'OK') {
$oImg->redimensiona(200,200,'crop');
$oImg->grava();
} else {
die($valida);
}
exit;
?>
Basta usar a superglobal $_FILES, passar o caminho da imagem que vc quer redimensionar e fazer como no exemplo assim. Existem varios exemplos prontos na web (m2brimagem), eu sempre baixo copio e colo nos meus projetos e bem simples.
Abs !!!
Devmedia
05/08/2009
a resposta do consultor foi suficiente? Podemos encerrar o chamado?
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Rodrigo Mourão
05/08/2009
Copie o arquivo m2brimagem.class.php para a pasta do seu projeto. Depois abra o Form onde vai fazer o upload da imagem e junto com os outros uses no topo do form coloque include('m2brimagem.class.php');
Feito isso no evento em que vc trata o upload do seu arquivo vc coloca o codigo que que postei enteriormente.
$oImg = new m2brimagem('1.jpg');
$valida = $oImg->valida();
if ($valida == 'OK') {
$oImg->redimensiona(200,200,'crop');
$oImg->grava();
} else {
die($valida);
}
exit;
Como eu falei anteriormento o nome da imagem ai e 1.jpg, vc tem que mudar para a imagem que vc esta postando, como vc pega isso? Através da superglobal $_FILES. Na video que eu lhe passei eu mostro como fazer isso. Acabei de assisteir agora e la eu falo dos parametros name, temp_name, etc etc etc
Abs,
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
if($_FILES['UploadFile']['name'] != "")
{
$diretorio = "C:/wamp/www/Estofados Solar/adm/upload/sofas/n" . $DMPrincipal->QRCad_Prod->id_prod . "/";
if(!is_dir($diretorio))
{
mkdir($diretorio);
}
$nome_arquivo = $diretorio . $_FILES['UploadFile']['name'];
move_uploaded_file($_FILES['UploadFile']['tmp_name'], $nome_arquivo); $oImg = new m2brimagem('UploadFile'); //UploaFile é meu component que uso para upload mas assim sempre
$valida = $oImg->valida();
if($valida == 'OK')
{
$oImg->redimensiona(200, 200, 'crop');
$oImg->grava();
}
else
{
die($valida);
}
exit; }
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
if($_FILES['UploadFile']['name'] != "")
{
$diretorio = "C:/wamp/www/Estofados Solar/adm/upload/sofas/n" . $DMPrincipal->QRCad_Prod->id_prod . "/";
if(!is_dir($diretorio))
{
mkdir($diretorio);
}
$nome_arquivo = $diretorio . $_FILES['UploadFile']['name'];
move_uploaded_file($_FILES['UploadFile']['tmp_name'], $nome_arquivo); $oImg = new m2brimagem('UploadFile'); //UploaFile é meu component que uso para upload mas assim sempre
//da o erro de arquivo nao encontrado tenho certeza que o erro //está na linha $oImg = new m2brimagem('UploadFile') aonde vc //colocou 1.jpg nao sei o que devo colocar pq nao ira cadastrar //sempre a mesma fot, sera uma foto para cada produto $valida = $oImg->valida();
if($valida == 'OK')
{
$oImg->redimensiona(200, 200, 'crop');
$oImg->grava();
}
else
{
die($valida);
}
exit; }
Rodrigo Mourão
05/08/2009
global $DMPrincipal;
if($_FILES['UploadFile']['name'] != "")
{
$diretorio = "C:/wamp/www/Estofados Solar/adm/upload/sofas/n" . $DMPrincipal->QRCad_Prod->id_prod . "/";
if(!is_dir($diretorio))
{
mkdir($diretorio);
}
$nome_arquivo = $diretorio . $_FILES['UploadFile']['name'];
move_uploaded_file($_FILES['UploadFile']['tmp_name'], $nome_arquivo); $oImg = new m2brimagem('UploadFile'); Errado
$oImg = new m2brimagem($nome_arquivo); Correto
$valida = $oImg->valida();
if($valida == 'OK')
{
$oImg->redimensiona(200, 200, 'crop');
$oImg->grava();
}
else
{
die($valida);
}
exit; }
Espero ter ajudado !!
Abs !!
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
global $DMPrincipal; if($_FILES['UploadFile']['name'] != "")
{
$diretorio = "C:/wamp/www/Estofados Solar/adm/upload/sofas/n" . $DMPrincipal->QRCad_Prod->id_prod . "/";
if(!is_dir($diretorio))
{
mkdir($diretorio);
}
$nome_arquivo = $diretorio . $_FILES['UploadFile']['name'];
move_uploaded_file($_FILES['UploadFile']['tmp_name'], $nome_arquivo); $oImg = new m2brimagem($nome_arquivo);
$valida = $oImg->valida();
if($valida == 'OK')
{
$oImg->redimensiona(200, 141, 'resize');
$oImg->grava();
}
else
{
die($valida);
}
exit; aguardo obrigado
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
global $DMPrincipal; if($_FILES['UploadFile']['name'] != "")
{
$diretorio = "C:/wamp/www/Estofados Solar/adm/upload/sofas/n" . $DMPrincipal->QRCad_Prod->id_prod . "/";
if(!is_dir($diretorio))
{
mkdir($diretorio);
}
$nome_arquivo = $diretorio . $_FILES['UploadFile']['name'];
move_uploaded_file($_FILES['UploadFile']['tmp_name'], $nome_arquivo); $oImg = new m2brimagem($nome_arquivo);
$valida = $oImg->valida();
if($valida == 'OK')
{
$oImg->redimensiona(200, 141, 'resize');
$oImg->grava();
}
else
{
die($valida);
}
exit; aguardo obrigado
Rodrigo Mourão
05/08/2009
Tente redimensionar antes de mover a imagem para o diretório. Observe:
global $DMPrincipal; if($_FILES['UploadFile']['name'] != "")
{
$diretorio = "C:/wamp/www/Estofados Solar/adm/upload/sofas/n" . $DMPrincipal->QRCad_Prod->id_prod . "/";
if(!is_dir($diretorio))
{
mkdir($diretorio);
}
$nome_arquivo = $diretorio . $_FILES['UploadFile']['name'];
$oImg = new m2brimagem($_FILES['UploadFile']['tmp_name']);
$valida = $oImg->valida();
if($valida == 'OK')
{
$oImg->redimensiona(200, 141, 'resize');
$oImg->grava();
move_uploaded_file($_FILES['UploadFile']['tmp_name'], $nome_arquivo);
}
else
{
die($valida);
}
exit;
Abs!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Rodrigo Mourão
05/08/2009
Bem neste caso então uma sugestão seria validar o tamanho no envio, ou seja, assim como faz sites como orkut, Msn e outros. Caso a imagem esteja ou acima do tamanho em KB ou acima das dimensões permitidas a imagem não e submetida e um aviso e enviado ao usuario.
Repare que em alguns destes sites tem até um aviso ou alguma dica dizendo: Apenas imagens jpg são permitidas ou então dimensões máximas permitidas 150x150.
Esta verificação poderá ser feita utilizando o proprio componente uploadfile que possui metodo para retornar tipo, altura, largura e etc.
Abs !
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Rodrigo Mourão
05/08/2009
Todas as dicas e orientação que estavam ao meu alcance já lhe foram passadas, infelizmente a ultima dica era realmente esta de se redimensionar a imagem antes do post, como fazem outros sites, isso e quase que um padrão na web.
Eu acredito que hoje em dia os usuarios não tenham tanta dificuldade assim para redimensionar uma foto, mas sei bem como são usuarios kkkkkkkkk.
Vale lembrar que o problema nesta caso não está relacionado ao D4PHP, ou PHP propriamente dito. Pode ser que tenha uma forma de se realizar a tarefa porém eu realizando os teste não conseguir redimensionar a foto enviada por este motivo indiquei o procedimento abaixo.
Se eu ainda puder ajudar estou as ordens !!
Abs
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Fistsoft-sistemas Empresarial-ltda;
05/08/2009
Rodrigo Mourão
05/08/2009
O componente Image do Delphi for PHP já faz isso. Pode ficar um pouco distorcida devido a formato original e formato do componente.
Basta vc carregar para a propriedade ImageSource o caminho da imagem que vc quer exibir. Basta deixar o componente Imagem no tamanho que vc quer. Agora tem que colocar a propriedade AutoSize para False e a Propriedade Stretch para True.
Assim mesmo que uma imagem de 800x600 seja enviada ao componente ele vai exibí-la no tamnaho que vc determinou no componente.
Faça o teste e me informe !!!
Abs!!
Rodrigo Mourão
05/08/2009
fdnoticias1 é o nome que o Delphi for PHP deu ao componente Edit quando vc arrasta para a tela. Para tratar deste assunto solicito que seja aberto um novo chamado pois cada duvida deve ser respondida em um chamado a aprte.
Abs!!