Página 1 de 1
Aplicativo com foto
Enviado: 06 Abr 2017 14:44
por JoséQuintas
Vou fazer meu primeiro aplicativo com foto.
Compensa salvar em MySQL?
Provavelmente será necessário também converter pra alguma representação ascii pra não ter problemas com salvamento.
Ou é isso, ou é correr o risco de estourar limite do Windows de arquivos em pasta.
Alguma sugestão?
Aplicativo com foto
Enviado: 06 Abr 2017 16:35
por MSDN
Quintas,
Se você está preocupado em estourar o limite do Windows de arquivos armazenados em pastas, imagine o que aconteceria se essas mesmas fotos fosse parar dentro uma tabela no MySQL, o tamanho que ficaria !
O mais indicado, na minha opinião, seria gravar o caminho da(s) pasta(s) e somente exibir.
Exemplo :
Abraços
Aplicativo com foto
Enviado: 06 Abr 2017 16:51
por JoséQuintas
Por coincidência vai ser pra isso mesmo: imobiliária/vistoria.... rs
O detalhe é que ficando no disco, a pasta terá que estar liberada para acesso.
Aplicativo com foto
Enviado: 06 Abr 2017 17:20
por fladimir
blob
Aplicativo com foto
Enviado: 07 Abr 2017 11:43
por JoséQuintas
Pensei em usar hbtip, e codificar igual no email.
Pensando bem.... o tamanho deve ser equivalente a base de XMLs que já salvo em outros clientes.
Começar com MySQL e ver o que dá.
E pensar em como deixar navegar em várias imagens.
Acho que a questão interessante vai ser sobre imagens em JPG, sendo que a API do Windows não trabalha automático com esse formato.
Talvez a Bostaurus da HMG ajude...
Aplicativo com foto
Enviado: 07 Abr 2017 16:52
por JoséQuintas
Montei um teste com GTWVG pra visualizar.
Navega com setas, pgup, pgdown, rodinha do mouse, opção de zoom.... essas coisas básicas.
Código: Selecionar todos
#include "directry.ch"
#include "inkey.ch"
PROCEDURE Main()
LOCAL acFiles, nKey, nRow, nCol, nLargura, nAltura, nMedida := 3, nInicial
LOCAL nCont, cPath := "e:\fotos\diversos\"
SetMode( 33, 110 )
CLS
SET EVENTMASK TO INKEY_ALL - INKEY_MOVE
acFiles := Directory( cPath + "*.jpg" )
nInicial := 1
DO WHILE nKey != K_ESC
nAltura := Int( MaxRow() / nMedida )
nLargura := Int( MaxCol() / nMedida )
nRow := 1
nCol := 1
FOR nCont = nInicial TO nInicial + ( nMedida * nMedida ) - 1
wvt_DrawImage( nRow, nCol, nRow + nAltura - 1, nCol + nLargura - 1, cPath + acFiles[ nCont, F_NAME ] )
nCol += nLargura
IF nCol + nLargura > MaxCol()
nCol := 1
nRow += nAltura
ENDIF
NEXT
nKey := 0
DO WHILE nKey == 0
nKey := Inkey(0)
DO CASE
CASE nKey == K_ESC
CASE nKey == Asc( "+" )
nMedida := Max( 1, nMedida - 1 )
CASE nKey == Asc( "-" )
nMedida := Min( 6, nMedida + 1 )
CASE nKey == K_UP .OR. nKey == K_MWFORWARD
nInicial := Max( 1, nInicial - nMedida )
CASE nKey == K_DOWN .OR. nKey == K_MWBACKWARD
nInicial := Min( Len( acFiles ) - nMedida ^ 2, nInicial + nMedida )
CASE nKey == K_PGUP
nInicial := Max( 1, nInicial - nMedida ^ 2 )
CASE nKey == K_PGDN
nInicial := Min( Len( acFiles ) - nMedida ^ 2, nInicial + nMedida ^ 2)
OTHERWISE
nKey := 0
ENDCASE
ENDDO
ENDDO
RETURN
Lembrando que a qualidade original é melhor.
Pra colocar aqui no fórum sempre reduzo pra 1/4 do tamanho. (original=3840x2160, reduz pra 1920x1080).
Já daria pro cliente brincar um pouco.... rs