schaukoski Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Olá ...Estou tendo alguns problemas com isto.Eu tenho um opendialog na minha aplicação, aonde eu importo imagens do computador para meu componente "image2".Em seguida, eu dou image2.picture.savetofile, e salvo como .BMP...Aí está o problema, porquê, eu aceito JPEG, e JPG, se eu salvar como .bmp uma imagem jpeg , não irá abrirposteriormente...Eu preciso que abra JPEG e JPG e BMP, colocar filtro no open dialog não seria útil.Seria necessário saber, a extensão da imagem que está no meu image2, para salvá-la ( através de condição ) se ela é bmp, ou jpeg, jpg...Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Cast Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Cara, só adapta ele pro seu código, é que eu to meio corrido aqui na empresa... qualquer dúvida escrevi ai que eu respondo...$ext = explode(".",$_FILES["foto"]["name"]); # explode tem a função de separar a string pelo caracter informado, no exemplo ".")# $_FILES serve para buscar arquivos$ext = $ext[sizeof($ext)-1];# sizeof pega o tamanho no vetorecho $ext; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Tudo bem, é que no caso eu não vou buscar uma imagem, eu tenho ela já no meu componente IMAGE2...eu não intendi, o que é o $ext, ele seria meu image2.picture.namepath algo assim?Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Cast Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Isso... é que no meu caso eu recebia ela de um form e quebrava pra verificar a extensão, pois também tinha o mesmo problema que você, só aceitava .jpg.... A diferença é que eu recebia ela do usuario, você vai ter que "abrir" ela ai pra verificar a extensão... Se você não conseguir, posta seu código ai que fica mais fácil de te ajudar ok... abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 OK Renato.eu tenho 3 possibilidades de formatos, JPG, JPEG e BMP.eu tenho meu componente image2 no form, e tenho tambem o openpicturedialog, que é aonde eu busco a imagem e trago para o image2.até ai tudo bem, ele procura a imagem desejada, da OK, a imagem aparece la no image2, e na hora de salvar que é o problema, porque eu não sei qual extensão que veio, podem ser uma das 3 formatos possíveis(jpeg, jpg bmp).o valor da extensao vai ficar em uma variável? isso que eu não intendi do seu código...tem como voce fazer um exemplo , com meu componente image2? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Cast Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Cara, posta seu form e a parte onde você salva a imagem ai que eu conserto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Tudo bem. procedure TFormTCadCF.SBgravarClick(Sender: TObject); begin image2.Picture.SaveToFile('c:\fichario\foto\'+dbedit1.text+'.bmp'); end; Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 opaeheh de começo achei que fosse PHP, pelo post doRenato...Seguinte, no OpenPictureDialog que você fica sabendoo tipo de imagem exemplo:varextensao: String;beginif OpenPictureDialog.Execute thenbeginextensao := ExtractFileExt(OpenPictureDialog.Filename);e na hora de salvar só você fazerimage2.Picture.SaveToFile('c:\fichario\foto\'+dbedit1.text+ extensao);Talvez seja necessário colocar a variavel que armazena aextensão como global e não na rotina em si já que pracarregar e salvar são duas rotinas diferentes...abs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Muito Obrigado a vocês, Renato e Churc.Deu certo! Até mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 15, 2007 Denunciar Share Postado Fevereiro 15, 2007 (editado) schaukoski, você vai sempre gravar no formato bmp?Por acaso tem algo a ver com o seu outro post. Voce está transformando em BMP para gravar no blob ou disco?Se for, e você estiver fazendo o resize da figura (transformando em thumbnail), então veja esta adaptação que fiz daquela função MakeThumbNail2 (eu a renomeei aqui):procedure MakeThumbNail(aSource :TGraphic; aDest: TBitmap; iWidth, iHeight: Integer); var Escala :Double; begin aDest.Width := iWidth; aDest.Height := iHeight; // Esta parte é utilizada para manter a proporção, sem que // o maior dos lados ultrapasse a maior medida informada (acho que está 100%) Escala := aSource.Width /aSource.Height; if (iWidth *Escala) > iHeight then aDest.Height := Round(iHeight /Escala) else if (iHeight /Escala) > iWidth then aDest.Width := Round(iWidth *Escala); // Desenha a imagem no tamanho calculado aDest.Canvas.StretchDraw(Rect(0, 0, aDest.Width, aDest.Height), aSource); end; // Carrega imagem para visualização em Image1 procedure TForm1.BtnLoadClick(Sender: TObject); begin // Lê qualquer tipo de imagem permitido if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; // Grava imagem visualizada no Image1 para um arquivo bmp (reduzido) procedure TForm1.BtnSaveClick(Sender: TObject); var BmpDst :TBitmap; begin // Verifica se há uma imagem carregada if Assigned(Image1.Picture.Graphic) then begin // Cria bitmap destino a ser utilizado na gravação BmpDst := TBitmap.Create; try // Transforma a imagem carregada (qualquer tipo) em um thumbnail BMP MakeThumbNail(Image1.Picture.Graphic, BmpDst, 100, 100); // *** Opção para gravar em arquivo ou na base de dados *** // 1) Grava a imagem no formato BMP BmpDst.SaveToFile('c:\fichario\foto\'+dbedit1.text+'.bmp'); // 2) Grava a imagem no formato BMP num campo da tabela DBImage1.Picture.Assign(BmpDst); // Limpa o Image1 Image1.Picture.Assign(nil); finally BmpDst.Free; end; end; end;Ao utilizar como origem (aSource) um TGraphic, não precisamos nos preocupar com que tipo de imagem ela é.Abraços Editado Fevereiro 16, 2007 por Micheus Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
schaukoski
Olá ...
Estou tendo alguns problemas com isto.
Eu tenho um opendialog na minha aplicação, aonde eu importo imagens do computador para meu componente "image2".
Em seguida, eu dou image2.picture.savetofile, e salvo como .BMP...
Aí está o problema, porquê, eu aceito JPEG, e JPG, se eu salvar como .bmp uma imagem jpeg , não irá abrir
posteriormente...
Eu preciso que abra JPEG e JPG e BMP, colocar filtro no open dialog não seria útil.
Seria necessário saber, a extensão da imagem que está no meu image2, para salvá-la ( através de condição ) se ela é bmp, ou jpeg, jpg...
Obrigado!
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.