| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Fev 12, 2007 11:21 am Assunto: Trabalhando com imagens Firebird 2.0?(Resolvido) |
|
|
Olah pessoal, bom eh o seguinte, tenho uma tela no meu programa em que tem uma imagem que pode ser alterada a qualquer momento pelo usuario, esta imagem vai ter que ser gravada para cada cliente, pois eh um tipo de odontograma aonde o usuario ao digitar a id do paciente vai mostrar o resultado desta imagem odontograma, entao vem a pergunta:
Qual eh a melhor maneira de gravar estas imagens?
Se gravar direto no banco a possibilidade do mesmo ficar muito grande e o programa lento? Pois nao sei quantos pacientes vao ter este programa, mais sei que cada um vai ter que ter o proprio odontograma mostrando o resultado do tratamento.
Estou usando firebird 2.0
Tambem gostaria de saber se o campo que devo fazer no firebird e tipo BLOB (Fields Type).
No aguardo
Adriano _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Editado pela última vez por adriano_servitec em Qui Fev 15, 2007 10:28 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
Jeandeson Novato

Registrado: Sexta-Feira, 3 de Fevereiro de 2006 Mensagens: 29
|
Enviada: Seg Fev 12, 2007 11:36 am Assunto: |
|
|
Olá adriano_servitec!
Eu não gravaria as imagens no bd, e sim em uma pasta separada, colocando somente o caminho da imagem no bd.
T+ |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
noenxe Membro Junior

Registrado: Sexta-Feira, 9 de Setembro de 2005 Mensagens: 325
|
Enviada: Ter Fev 13, 2007 11:29 am Assunto: |
|
|
No OpenPicture que você usará para localizar a imagem, você pega a propriedade FileName e Manda para a tabela.
| Código: |
procedure TForm1.CarregaImagem(Sender: TObject);
var
caminhoimagem: string;
begin
if (OpenPictureDialog1.Execute) then
begin
caminhoimagem:= OpenPictureDialog1.FileName;
Image3.Picture.LoadFromFile(caminhoimagem);
TblIMAGEM.asstring:= caminhoimagem;
end;
end;
|
Tem tambem que colocar uma função para tentar abrir a imagem, ai se conseguir abrir a imagem você manda o campo imagem da tabela receber o valor.
Calor |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Fev 13, 2007 5:21 pm Assunto: |
|
|
| noenxe escreveu: | No OpenPicture que você usará para localizar a imagem, você pega a propriedade FileName e Manda para a tabela.
| Código: |
procedure TForm1.CarregaImagem(Sender: TObject);
var
caminhoimagem: string;
begin
if (OpenPictureDialog1.Execute) then
begin
caminhoimagem:= OpenPictureDialog1.FileName;
Image3.Picture.LoadFromFile(caminhoimagem);
TblIMAGEM.asstring:= caminhoimagem;
end;
end;
|
Tem tambem que colocar uma função para tentar abrir a imagem, ai se conseguir abrir a imagem você manda o campo imagem da tabela receber o valor.
Calor | Obrigado pessoal, assim que surgir mais alguma duvida vou postando aki.
Apesar que gostaria de saber se tem como salvar um Timagem para cada pasta de cada paciente ai em vez de usar o openpicturedialogo usar somente o LoadFromFile direto na pasta de cada paciente cfe abro a ID de cada um. tipo
| Código: | | image.Picture.LoadFromFile('c:\fotos\fotosadriano\minhafoto.bmp'); |
Ou seja assim que digitar a ID do paciente ja apontar diretamente para pasta dele.
Adriano. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
noenxe Membro Junior

Registrado: Sexta-Feira, 9 de Setembro de 2005 Mensagens: 325
|
Enviada: Ter Fev 13, 2007 7:01 pm Assunto: |
|
|
Você pode definir um nome padrão para a foto, ex.: odontograma.bmp . Mas você pode criar as fotos usando o ID do usuário ex.: 1.bmp ; 551.bmp, nesse caso você não vai precisar criar uma pasta por cliente. E você só vai precisar disso. LoadFromFile(ExtractFilePath + '/' + IntToStr(TblID.asInteger) + '.bmp');
 |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Fev 13, 2007 7:33 pm Assunto: |
|
|
| noenxe escreveu: | Você pode definir um nome padrão para a foto, ex.: odontograma.bmp . Mas você pode criar as fotos usando o ID do usuário ex.: 1.bmp ; 551.bmp, nesse caso você não vai precisar criar uma pasta por cliente. E você só vai precisar disso. LoadFromFile(ExtractFilePath + '/' + IntToStr(TblID.asInteger) + '.bmp');
 | Melhor assim amigo, mais para eu continuar neste programa gostaria de saber como faria para gravar estas imagens? Bom vou explicar, tenho um picture num TImage (ainda esta em teste) nao sei se vou ter que mudar para TDBImage da paleta (dataControls), bom a unica forma que eu encontrei de pintar os dentes foi usando outros timagens ou seja sao 32 dentes ai fiz mais 32 timagens dentro do timagem, assim ja tenho as figuras certas e no caso cada dente tem um numero aonde fiz um checkbox para cada dente e um menu aonde tem algumas opçoes tipo extração, limpeza, obturação, etc, entao a ideia que tive foi ao selecionar um destes serviços e clicar no checkbox vai pintar o dente que eu selecionei o checkbox cfe. a imagem de cada um, bom ateh ai tudo ok, mais depois disso tudo o que eu quero eh gravar esta imagem que ficou por ultimo e assim que eu selecionar novamente a ID do paciente ele captar a ultima imagem gravada daquela ID. Bom a parte de buscar eu ja entendi, agora a parte de gravar assim ainda nao entendi.
Lembrando que fiz assim por teste, pq nao achei nada sobre como fazer este tal odontograma....rsrsrs.
E se alguem tiver uma ideia melhor eu aceito.
Muito obrigado por me ajudar noenxe
***************************************************
Aproveitando o topico, alguem sabe um codigo de efeito lupa melhor que estes aqui
| Código: | procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
wSizeX,wSizeY: integer;
begin
// Pega o tamanho por um percentual = 50%
wSizeX:= Trunc(Image1.Width*0.5);
wSizeY:= Trunc(Image1.Height*0.5);
Image2.Picture.Bitmap.Width:= Image2.Width;
Image2.Picture.Bitmap.Height:= Image2.Height;
Image2.Picture.Bitmap.Canvas.CopyRect(
Rect(0,0,Image1.Width,Image1.Height),
Image1.Picture.Bitmap.Canvas,
Rect(X,Y,X+wSizeX,Y+wSizeY));
end; |
Se nao me engano me pareçe que ja fiz ou vi um post assim aqui, mais nao achei, nem no forum nem aqui comigo.  _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
noenxe Membro Junior

Registrado: Sexta-Feira, 9 de Setembro de 2005 Mensagens: 325
|
Enviada: Qua Fev 14, 2007 10:16 am Assunto: |
|
|
| Bom você Tipo ter 32 TImages coloridas com visible false, quando o dentista marcar aquele dente você so manda deixar a visibile false, nessa opção você nem vai precisar ter uma imagem para cada cliente. Mas ai caso você quiser imprimir você terá que ter uma imagem pronta, mas ai você terá que mexer no canvas da imagem. O comando para salvar a imagem é Image1.Picture.SaveToFile(); |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Fev 14, 2007 1:37 pm Assunto: |
|
|
| noenxe escreveu: | | Bom você Tipo ter 32 TImages coloridas com visible false, quando o dentista marcar aquele dente você so manda deixar a visibile false, . Mas ai caso você quiser imprimir você terá que ter uma imagem pronta, mas ai você terá que mexer no canvas da imagem. O comando para salvar a imagem é Image1.Picture.SaveToFile(); |
Sim os 32 timages estao com o visible false e soh ficam true aqueles que o dentista vai marcar. Ai eh que esta o problema, mais como: | Citação: | | nessa opção você nem vai precisar ter uma imagem para cada cliente | Nao entendi esse lançe amigo. Bom aonde estou nao tenho o programa agora, mais no caso se for assim que grava
Image1.Picture.SaveToFile(); entao no caso se tiver mais usn 3 imagens com o visible = true ficaria assim?
| Citação: | Image1.Picture.SaveToFile();
Image4.Picture.SaveToFile();
Image7.Picture.SaveToFile();
Image10.Picture.SaveToFile(); |
Nao sairia + ou - como um print screen somente daquela imagens gravada para cada cliente?
Desculpe, mas to meio confuso. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
noenxe Membro Junior

Registrado: Sexta-Feira, 9 de Setembro de 2005 Mensagens: 325
|
Enviada: Qua Fev 14, 2007 4:02 pm Assunto: |
|
|
| Assim, caso você não necessite imprimir a imagem você pode so ir deixando os dentes visiveis ou não nesse caso nem vai precisar salvar a imagem, Mas se precisar salvar a imagem você vai ter que editar a imagem e ai você esquece as 32 Timages. Você tera que marcar cada dente desenhando no canvas da imagem. |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Fev 14, 2007 4:53 pm Assunto: |
|
|
| noenxe escreveu: | | Assim, caso você não necessite imprimir a imagem você pode so ir deixando os dentes visiveis ou não nesse caso nem vai precisar salvar a imagem, Mas se precisar salvar a imagem você vai ter que editar a imagem e ai você esquece as 32 Timages. Você tera que marcar cada dente desenhando no canvas da imagem. | Poxa mais o canvas vai ser dificil de pintar os dentes, cfe a figura. Sera que nao tem jeito de salvar o espelho desta imagens num soh? A nao ser que nao estou sabendo lidar com o canvas.  _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
noenxe Membro Junior

Registrado: Sexta-Feira, 9 de Setembro de 2005 Mensagens: 325
|
Enviada: Qua Fev 14, 2007 5:56 pm Assunto: |
|
|
| Bom, no lugar de tu pintar todo o dente tu pode so fazer um X marcando ele, isso pode ficar um pouco feio, bom pode haver um modo de tu pegar a imagem do dente que esteja em outro Timage e mandar ele copiar aquele dente colorido na dentadura, mas isso você teria que criar uma função. E deve ser trabalhoso. |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
|