Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

entchucs

Redimensionar imagem e salvar no banco

Recommended Posts

Seguinte, to criando uma função pra redimensionar a imagem (200px de altura por largura proporcional) para depois salvar no mysql.Só que eu me confundi valendo heheAlguém pode me ajudar a achar os erroSSSSS??function mod_imagem ($arquivo) { $foto = addslashes(fread(fopen($arquivo, "r"), filesize($arquivo))); $criaimg = imagecreatefromjpeg($foto); $altu_img = imagesy($criaimg); $altu_img = (int) $altu_img; $larg_img = imagesx($criaimg); $larg_img = (int) $larg_img; $altu = 200; $larg = $larg_img / ($altu_img / 200); $thumb = imagecreatetruecolor($larg, $altu); $source = imagecreatefromjpeg($foto); list($width, $height) = getimagesize($foto); imagecopyresampled($thumb, $source, 0, 0, 0, 0, $larg, $altu, $width, $height); ob_start(); imageJpeg($thumb, NULL, '90'); $arquivo = ob_get_contents(); ob_end_clean(); return $arquivo;}if ($imagem1_name != "") { $arquivo1 = mod_imagem($imagem1); //$imagem1 é o nome do campo do form mysql_query("insert into produtos (img_1) values ('$arquivo1')");}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele salva alguma coisa no banco pke no phpmyadmin diz q tem algo [bLOB - 161 Bytes] mas qdo mando visualizar no browser aparece o seguinte: A imagem “xxxxxxx/image.php?area=produtos&campo=img_1&imgid=2” contém erros e não pode ser exibida.Acredito que o problema não é no image.php pke eu jah testei inserindo uma imagem sem esse redimensionamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele salva alguma coisa no banco pke no phpmyadmin diz q tem algo mas qdo mando visualizar no browser aparece o seguinte: A imagem “xxxxxxx/image.php?area=produtos&campo=img_1&imgid=2” contém erros e não pode ser exibida.Acredito que o problema não é no image.php pke eu jah testei inserindo uma imagem sem esse redimensionamento.

pra testar voce pode por a saida de buffer dentro de um arquivo .jpg mesmo ou entao por um header() pra imagem e jogar ela no brownser antes mesmo de gravar no banco.(o campo do banco no qual voce grava o $source eh blob??)[]sluis

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mandei visualizar a imagem antes de mandar pro banco e deu o mesmo erro. Tentei dar mais um addslashes antes de mandar visualizar e surgiu o mesmo erro.O campo eh longblob.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mandei visualizar a imagem antes de mandar pro banco e deu o mesmo erro. Tentei dar mais um addslashes antes de mandar visualizar e surgiu o mesmo erro.O campo eh longblob.

fala man,tava com um pouco de tempo aqui eu fiz a funcaozinha:
function resize_image($filename){	$width = 200;	$height = 200;	header('Content-type: image/jpeg');	list($width_orig, $height_orig) = getimagesize($filename);	$image_p = imagecreatetruecolor($width, $height);	$image = imagecreatefromjpeg($filename);	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);	imagejpeg($image_p, null, 100);}resize_image('test.jpg');
aqui funcionou blzera, soh que ela nao grava a saida no banco de dados, mas eh soh voce pegar o buffer de saida e gravar la.Outra coisa, hora que eu fiz a funcao eu errei o nome da figura e coloquei teste.jpg onde era test.jpg e apareceu esse erro que voce descreveu, da uma olhada vai que por distracao voce errou o nome da figura porque seu code ta joia tambem.[]sluis

Compartilhar este post


Link para o post
Compartilhar em outros sites

ConseguiiiiiiiiiiiiEis o código. Dae basta pegar o return da função e manda armazena num campo blob sendo que o $arquivo será o campo do formuláriofunction mod_imagem ($arquivo) { $criaimg = imagecreatefromjpeg($arquivo); $altu_img = imagesy($criaimg); $altu_img = (int) $altu_img; $larg_img = imagesx($criaimg); $larg_img = (int) $larg_img; $altu = 200; $larg = $larg_img / ($altu_img / 200); $thumb = imagecreatetruecolor($larg, $altu); list($width, $height) = getimagesize($arquivo); imagecopyresampled($thumb, $criaimg, 0, 0, 0, 0, $larg, $altu, $width, $height); $arquivo = imageJpeg($thumb, NULL, '90'); $arquivo = addslashes(fread(fopen($arquivo, "r"), filesize($arquivo))); return $arquivo;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ConseguiiiiiiiiiiiiEis o código. Dae basta pegar o return da função e manda armazena num campo blob sendo que o $arquivo será o campo do formuláriofunction mod_imagem ($arquivo) { $criaimg = imagecreatefromjpeg($arquivo); $altu_img = imagesy($criaimg); $altu_img = (int) $altu_img; $larg_img = imagesx($criaimg); $larg_img = (int) $larg_img; $altu = 200; $larg = $larg_img / ($altu_img / 200); $thumb = imagecreatetruecolor($larg, $altu); list($width, $height) = getimagesize($arquivo); imagecopyresampled($thumb, $criaimg, 0, 0, 0, 0, $larg, $altu, $width, $height); $arquivo = imageJpeg($thumb, NULL, '90'); $arquivo = addslashes(fread(fopen($arquivo, "r"), filesize($arquivo))); return $arquivo;}

eu testei aqui e essa linha:$arquivo = addslashes(fread(fopen($arquivo, "r"), filesize($arquivo)));tava dando pal, e ao meu ver ela ta ai de bicao hehehe... (pode ver que ele grava um erro no final do arquivo se voce pedir pra mostrar a string resultante mas mesmo assim mostrava o arquivo)show de bola, =D[]sluis fernando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aham, acabei vendo isso depois porém, só consigo dar a saida com o header, não consigo salvar no banco. fica o campo com 1 byte =/Jah to de cara heheAlguém sabe o ke pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.