PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 24 → Take Picture - Tirar Foto
Take Picture - Tirar Foto
Débuté par adrianoboller, 24 nov. 2014 12:35 - Aucune réponse
Membre enregistré
2 962 messages
Popularité : +89 (91 votes)
Posté le 24 novembre 2014 - 12:35
Procedure CAM_FotoTirar(LOCAL ArquivoLocal,...
LOCAL Extensao,...
LOCAL Ambiente,...
LOCAL Crypto,...
LOCAL OpcaoEscolha,...
LOCAL CodigoArquivo,...
LOCAL CodOs,...
LOCAL CodOsItem,...
LOCAL NomeArquivo,...
LOCAL Descricao,...
LOCAL VideoFoto,...
LOCAL TempoSegundos,...
LOCAL FPS,...
LOCAL DebugSN)

// Save the image currently broadcasted in the "CAM_Camera" control
ResImgBck, Ok2 is boolean

ArquivoBkp is string = "/mnt/sdcard/Os/VideosFotos/Foto"+DateSys()+""+TimeSys()+".jpg"

IF DebugSN = ""
DebugSN = gsDebugSN
END

IF InSimulatorMode() = False THEN // ambiente real

//VALIDA CAMINHO E NOME DE ARQUIVO
nTamanho is int = Length(ArquivoLocal)
IF Middle(ArquivoLocal,1,1) <> "/" THEN
ArquivoLocal = "/" + ArquivoLocal
END
IF Middle(ArquivoLocal,nTamanho,1) <> "/" THEN
ArquivoLocal = ArquivoLocal + "/"
END
IF Middle(Extensao,1,1) <> "." THEN
Extensao = "."+Extensao
END
IF Extensao = "" OR Extensao = ".avi" OR Extensao = ".mpg" THEN
Extensao = ".jpg"
END

//CRIA DIRETORIO
IF fDirectoryExist(ArquivoLocal) = False
fMakeDir(ArquivoLocal)
END

//APAGA ARQUIVO ANTIGO
Arquivo = ArquivoLocal + "foto" + Extensao
fDelete(Arquivo)

IF DebugSN = "S" THEN
NextTitle("Os")
Info(Arquivo)
END


//GERA ARQUIVO NOVO EM DISCO - Disparo da Foto
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IF INIRead("Camera","TipoTela","",AutorunPath) <> "FullScreen" AND GloWinCamera = "WIN_Camera_Desenvolvimento" THEN
//IF GloSom = "Ativado"
Sound("camera.wav",soundDefault)
//END
ResImgBck = VideoCapture(WIN_Camera_Desenvolvimento.CAM_Camera, Arquivo, viPictureCapture)
ELSE
//IF GloSom = "Ativado"
Sound("camera.wav",soundDefault)
//END
ResImgBck = VideoCapture(WIN_Camera_FullScreen.CAM_Camera, Arquivo, viPictureCapture)
END
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



//VERIFICA ERROS
IF ResImgBck = False AND DebugSN = "S"
Error(ErrorInfo())
END


//VERIFICA SE EXISTE O ARQUIVO
IF fFileExist(Arquivo) = True AND Arquivo <> "" THEN

//Reserva a foto original na pasta /mnt/sdcard/Os/VideosFotos
Ok2 = fCopyFile(Arquivo,ArquivoBkp)
IF Ok2 = False AND DebugSN = "S" THEN
Info("Erro ao copiar o arquivo: "+Arquivo)
ELSE
IF fFileExist(ArquivoBkp) = True AND DebugSN = "S"
Info("Arquivo bkp gerado com sucesso")
END
END

//Info("PAUSE")
//Tamanho padrao
/////////////////////////////////////////////////////////////////////////////
IF gloWidth = 0 OR gloWidth = "" OR gloWidth = Null THEN
gloWidth = 640
gloHeight = 480
END
/////////////////////////////////////////////////////////////////////////////
//Redimensionar Imagem
ok = CAM_ResizeImage(Arquivo, ArquivoNovo,gloWidth,gloHeight, DebugSN)
IF ok = True AND DebugSN = "S" THEN
Info("Resize ok")
ELSE IF ok = False AND DebugSN = "S" THEN
Info("Resize com erro!...")
END
//info("PAUSE")
/////////////////////////////////////////////////////////////////////////////
//Rotacionar
IF ok = True AND gsHorizontalVertical = "Vertical"
ok = CAM_RotateImage(ArquivoNovo, 90, DebugSN)
IF ok = True AND DebugSN = "S" THEN
Info("Rotacionou com sucesso")
ELSE IF ok = False AND DebugSN = "S"
Info("Erro ao rotacionar")
END
END
////////////////////////////////////////////////////////////////////////////
//Info("PAUSE")
IF DebugSN = "S" THEN
NextTitle("Os")
Info("Arquivo gerado com sucesso!...",Arquivo)
END

CAM_OpcaoEscolha(ArquivoLocal,...
Extensao,...
Ambiente,...
Crypto,...
OpcaoEscolha,...
CodigoArquivo,...
CodOs,...
CodOsItem,...
NomeArquivo,...
Descricao,...
VideoFoto,...
TempoSegundos,...
FPS,...
DebugSN)

ELSE

IF DebugSN = "S" THEN
NextTitle("Os")
Info("Arquivo não foi gerado!")
END

END

ELSE
NextTitle("Os")
Info("Modo simulador")
END

//Somente para o projeto
//IF Ambiente = "Producao" THEN
//Close()
//END