Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
gostaria de saber se alguem tem ideia de como transformar a imagem BLOB em uma miniatura...
a unica coisa que eu faço é retornar a imagem do banco de dados e mostrar através do codigo abaixo
header("Content-type: $tipo");
echo"$arquivo";
se eu colocar algum codigo a mais no código acima já me retorna um erro dizendo que não foi possível abrir a imagem...
Há possibilidade de manipular imagens de campo blob? alterar tamanho e etc?
testei.. nao deu erro... mostrou a imagem do tamanho normal..
não sei como funciona isso.. manipulação de blob, eu usava com upload de arquivo e
<?
$arquivos_codigo=$_GET['arquivos_codigo'];
$sql="select * from arquivos where arquivos_codigo='$arquivos_codigo'";
$resultado=mysql_query($sql);
$row=mysql_fetch_array($resultado);
$arquivo=$row['arquivo'];
$tipo=$row['tipo'];
header("Content-type: $tipo");
echo"$arquivo";
//tamanho do thumb
$new_w = 200;
$new_h = 150;
echo $im = imagecreatefromstring($arquivo);
$width = imagesx($im);
$height = imagesy($im);
$thumb = imagecreatetruecolor($new_w,$new_h);
imagecopyresized($thumb,$im,0,0,0,0,$new_w,$new_h,$width,$height);
if ($tipo == "image/pjpeg") {
imagejpeg($thumb);
} else if ($tipo == "image/x-png") {
imagepng($thumb);
} else if ($tipo == "image/gif") {
imagegif($thumb);
}
//imagedestroy($thumb);
echo $thumb;
?>
>
Cara... eu não testei...
mas da uma olhada aqui:
http://br2.php.net/manual/en/function.imagecreatefromstring.php
Um exemplo (se der erro poste aqui, pois não testei...):
//tamanho do thumb
$new_w = 200;
$new_h = 150
$im = imagecreatefromstring($arquivo);
$width = imagesx($im);
$height = imagesy($im);
$thumb = imagecreatetruecolor($new_w,$new_h);
imagecopyresized($thumb,$im,0,0,0,0,$new_w,$new_h,$width,$height);
if ($tipo == "image/pjpeg") {
imagejpeg($thumb);
} else if ($tipo == "image/x-png") {
imagepng($thumb);
} else if ($tipo == "image/gif") {
imagegif($thumb);
}
imagedestroy($thumb);tire isso:
//tire essa linha
echo "$arquivo";
//...
//essas também
echo $thumb;
//descomente essa linha
imagedestroy($thumb);
quando você executa
imagejpeg($thumb);
a imagem já é enviada para o browser... não precisa echo
Não deu certo tbm..
a pagina onde ocorre isso tem header pra imagem e na variavel $arquivo eu tenho o conteúdo da imagem,
se eu nao colocar echo $arquivo ou echo $thumb não vai ter conteudo para mostrar...
eu procurei e achei uma solução.. efetuar a gravação da imagem e da miniatura no banco.
>
tire isso:
//tire essa linha
echo "$arquivo";
//...
//essas também
echo $thumb;
//descomente essa linha
imagedestroy($thumb);
quando você executa
imagejpeg($thumb);
a imagem já é enviada para o browser... não precisa echo
>
a pagina onde ocorre isso tem header pra imagem e na variavel $arquivo eu tenho o conteúdo da imagem,
se eu nao colocar echo $arquivo ou echo $thumb não vai ter conteudo para mostrar...
Vai sim... a função imagejpeg($thumb) envia conteúdo para o browser. Só não envia se você passar o segundo parâmetro, que o caminho onde ela vai salvar a imagem... se você não passar ela praticamente da um echo na imagem... por isso disse pra você não colocar o echo.
Estranho... aqui eu testei e funcionou perfeito.
não da nenhum erro?
tenta colocar error_reporting( E_ALL ) no começo, e ver se da algum erro...
testei novamente e funcionou
vlw cara.
obrigado.
Cara... eu não testei...
mas da uma olhada aqui:
http://br2.php.net/manual/en/function.imagecreatefromstring.php
Um exemplo (se der erro poste aqui, pois não testei...):
//tamanho do thumb
$new_w = 200;
$new_h = 150