PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → VideoCapture Function picture resolution
VideoCapture Function picture resolution
Débuté par Rob Lawton, 24 avr. 2014 17:08 - 12 réponses
Posté le 24 avril 2014 - 17:08
I'm using the following function on a windows CE device.
VideoCapture(CameraControl, FileName, viPictureCapture)

The problem I'm running into is that the pictures it's taking are very small. They're coming out at 240x320 when the camera is capable of taking much larger images.

Is there a property that I can change to increase the picture resolution?
Posté le 24 avril 2014 - 22:22
I forgot to specify that this is in WinDev Mobile 18
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:19
PROCEDURE CAM_ResizeImage(LOCAL PathFileOrigemJpg is string, LOCAL PathFileDestinoJpg, LOCAL Horizontal, LOCAL Vertical, LOCAL DebugSN)

IF gsDebugSN = "S"
DebugSN="S"
END

IF Horizontal = "" OR Horizontal = 0 OR Vertical = "" OR Vertical = 0 THEN
Info("Não foi definido o tamanho Horizontal e Vertical da imagem")
ok = False
END

IF PathFileOrigemJpg <> "" AND PathFileDestinoJpg <> ""

HReadSeekFirst(T000Config,T000Config.CodConfig000,27)
IF HFound(T000Config) = True AND T000Config.Valor000 <> "" THEN
Horizontal = Middle(T000Config.Valor000,1,3)
Vertical = Middle(T000Config.Valor000,5,3)

ok = VideoGenerateThumbnail(PathFileOrigemJpg, PathFileDestinoJpg, Horizontal, Vertical)

ELSE

ok = VideoGenerateThumbnail(PathFileOrigemJpg, PathFileDestinoJpg, 640, 480)

END

IF fFileExist(PathFileDestinoJpg) THEN
IF ok = True AND DebugSN = "S"
Info("Redimensionamento realizado com sucesso!")
ok = True
END
ELSE
IF DebugSN = "S"
Info("Falha no redimensionamento da imagem!")
ok = False
END
END

ELSE

Info("Nome da imagem não foi definido!...")
ok = False

END

RESULT(ok)
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:20
// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] CAM_RotateImage (<PathImagem>, <Angulo>, <DebugSN>)
//
// Parameters:
// PathImagem: <specify the role of Arquivo>
// Angulo: <specify the role of Angulo>
// DebugSN: <specify the role of DebugSN>
// Return Value:
// boolean: // None
//
// For instance:
// Indicate an example.
//
PROCEDURE CAM_RotateImage(LOCAL PathImagem, LOCAL Angulo, LOCAL DebugSN)

//Existe Configuracao
HReadSeekFirst(T000Config,T000Config.CodConfig000,26)
IF HFound(T000Config) = True AND T000Config.Valor000 = "SIM"

IF PathImagem <> "" AND Angulo <> ""

WIN_Camera_FullScreen.IMG_Rotate = PathImagem

ok = dRotation(WIN_Camera_FullScreen.IMG_Rotate, Angulo)

IF ok = False AND DebugSN = "S" THEN
Info("Operação de Rotação Falhou")
ELSE IF ok = True AND DebugSN = "S"
Info("Rotação ok")
END

ELSE

Info("Parametros de rotação de imagem vazios nas configurações...")

END

END

IF ok = True
ok = dSaveImageJPEG(WIN_Camera_FullScreen.IMG_Rotate, PathImagem)
IF ok = False THEN
Error("Erro ao salvar imagem")
END
END


RESULT(ok)
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:21
PROCEDURE CAM_SalvarDB(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)

//info("CAM_SalvarDB")
IF gsDebugSN = "S"
DebugSN="S"
END

UltimoCodigo is int = 0

IF VideoFoto = "Foto"
gloWidth = Middle(gsResolucao,1,3)
IF gloWidth = "" OR gloWidth = 0 THEN
gloWidth = 640
END
gloHeight = Middle(gsResolucao,5,3)
IF gloHeight = "" OR gloHeight = 0 THEN
gloHeight = 480
END
END


IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info(gloWidth,gloHeight)
END


//T001 - Campos de Armazenamento dos arquivos

IF VideoFoto = "Foto"
T020Arquivo.Tipo020 = "Foto"
ELSE IF VideoFoto = "Video"
T020Arquivo.Tipo020 = "Video"
END

T020Arquivo.CodOrdemServico018 = GloCodOS

T020Arquivo.CodOrdemServicoStatus018 = GloCodItemOS

T020Arquivo.PathUrl020 = ArquivoNovo

T020Arquivo.Observacao020 = Descricao

T020Arquivo.DataHora020 = DateToString(DateSys()) +" - "+ TimeToString(TimeSys())


IF VideoFoto = "Foto"
T020Arquivo.FotoVideo020 = dLoadImage(ArquivoNovo,imgDefault,gloWidth,gloHeight)
ELSE IF VideoFoto = "Video"
T020Arquivo.FotoVideo020 = dLoadImage(ArquivoNovo)
END

ok = HAdd(T020Arquivo)

IF ok = True THEN

IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info("Gravado na base de dados com sucesso!")
END

ok = HExecuteQuery(QRY_MAX_T020)
HReadFirst(QRY_MAX_T020,QRY_MAX_T020.Count_1,hKeepFilter)
UltimoCodigo = QRY_MAX_T020.Count_1

//Enviar para Webservice//
IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info(Crypto,UltimoCodigo,CodOsItem,Descricao,DebugSN)
Info(CodOs, CodOsItem, ArquivoLocal, Extensao, NomeArquivo)
END

IF CodigoArquivo = 0 OR CodigoArquivo = "" THEN
CodigoArquivo = UltimoCodigo
END


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


ELSE
//Importante exibir o erro
NextTitle("MotolinkOs")
Info("Erro ao gravar na base de dados",ErrorInfo())

END
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:21
PROCEDURE CAM_SalvarFoto(LOCAL Escolha, LOCAL Descricao, LOCAL DebugSN)

IF gsDebugSN = "S"
DebugSN="S"
END

ok1 is boolean = False

Compressao is int = 0

//Redimensionar Imagem
IF gloWidth = 0 OR gloWidth = "" THEN
gloWidth = 640
gloHeight = 480
END
ok = CAM_ResizeImage(Arquivo, ArquivoNovo, gloWidth, gloHeight, DebugSN)

IF Arquivo <> "" AND fFileExist(Arquivo) = True THEN

IF Escolha = "S"
//1 : Sim
//2 : Não
SWITCH Dialog("Deseja salvar a foto?")
// Sim
CASE 1

Compressao = INIRead("Camera","Compressao","",AutorunPath)

IF Compressao = 0 THEN

Compressao = WIN_Camera_FullScreen.EDT_Compressao

END

//Redimensionar Imagem
IF gloWidth = 0 OR gloWidth = "" THEN
gloWidth = 640
gloHeight = 480
END
ok = CAM_ResizeImage(Arquivo, ArquivoNovo,gloWidth,gloHeight, DebugSN)
/////////////////////////////////////////////////////////////////////////////

//Rotacionar
IF ok = True AND gsHorizontalVertical = "Vertical"
ok = CAM_RotateImage(ArquivoNovo, 90, DebugSN)
END
////////////////////////////////////////////////////////////////////////////


//Arquivar na base de dados
IF ok = True

T020Arquivo.Tipo020 = "Foto"

T020Arquivo.Observacao020 = Descricao

T020Arquivo.DataHora020 = DateToString(DateSys()) +" - "+ TimeToString(TimeSys())

gloWidth = Middle(INIRead("Camera","Resolucao","",AutorunPath),1,3)

gloHeight = Middle(INIRead("Camera","Resolucao","",AutorunPath),5,3)

T020Arquivo.FotoVideo020 = dLoadImage(ArquivoNovo,imgDefault,gloWidth,gloHeight)

ok1 = HAdd(T020Arquivo)
IF DebugSN = "S"
IF ok1 = True THEN
IF DebugSN = "S"
Info("Gravado na base de dados com sucesso!")
END
ELSE
IF DebugSN = "S"
Info("Erro ao gravar na base de dados")
END
END
END

ELSE
IF DebugSN = "S"
Info("Redimensionamento da imagem falhou!")
END
END

// Não
CASE 2

END

ELSE IF Escolha = "N"

Compressao = INIRead("Camera","Compressao","",AutorunPath)
IF Compressao = 0 THEN

Compressao = WIN_Camera_FullScreen.EDT_Compressao

END


//Redimensionar Imagem
IF gloWidth = 0 OR gloWidth = "" THEN
gloWidth = 640
gloHeight = 480
END
ok = CAM_ResizeImage(Arquivo, ArquivoNovo,gloWidth,gloHeight, DebugSN)
/////////////////////////////////////////////////////////////////////////////

//Rotacionar
IF ok = True AND gsHorizontalVertical = "Vertical"
ok = CAM_RotateImage(ArquivoNovo, 90, DebugSN)
END
////////////////////////////////////////////////////////////////////////////


IF ok = True

T020Arquivo.Tipo020 = "Foto"

T020Arquivo.Observacao020 = Descricao

T020Arquivo.DataHora020 = DateToString(DateSys()) +" - "+ TimeToString(TimeSys())

gloWidth = Middle(INIRead("Camera","Resolucao","",AutorunPath),1,3)

gloHeight = Middle(INIRead("Camera","Resolucao","",AutorunPath),5,3)

T020Arquivo.FotoVideo020 = dLoadImage(ArquivoNovo,imgDefault,gloWidth,gloHeight)

ok1 = HAdd(T020Arquivo)
IF DebugSN = "S"
IF ok1 = True THEN
IF DebugSN = "S"
Info("Gravado na base de dados com sucesso!")
END
ELSE
IF DebugSN = "S"
Info("Erro ao gravar na base de dados")
END
END
END

ELSE
IF DebugSN = "S"
Info("Redimensionamento da imagem falhou!")
END
END

END

ELSE
IF DebugSN = ""
Info("Arquivo não encontrado no caminho informado!...", Arquivo)
END
END
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:22
PROCEDURE CAM_SalvarVideo(LOCAL Escolha, LOCAL Descricao, LOCAL DebugSN)

IF gsDebugSN = "S"
DebugSN="S"
END

ok1 is boolean = False

IF Arquivo <> "" AND fFileExist(Arquivo) = True THEN

IF Escolha = "S"
//1 : Sim
//2 : Não
SWITCH Dialog("Deseja salvar video?")
// Sim
CASE 1

T020Arquivo.Tipo020 = "Video"

T020Arquivo.Observacao020 = Descricao

T020Arquivo.DataHora020 = DateToString(DateSys()) +" - "+ TimeToString(TimeSys())

T020Arquivo.FotoVideo020 = dLoadImage(ArquivoNovo,imgDefault,640,480)

ok1 = HAdd(T020Arquivo)
IF DebugSN = "S"
IF ok1 = True THEN
Info("Gravado na base de dados com sucesso!")
ELSE
Info("Erro ao gravar na base de dados")
END
END

// Sim
CASE 2

END

ELSE IF Escolha = "N"

T020Arquivo.Tipo020 = "Video"

T020Arquivo.Observacao020 = Descricao

T020Arquivo.DataHora020 = DateToString(DateSys()) +" - "+ TimeToString(TimeSys())

T020Arquivo.FotoVideo020 = dLoadImage(ArquivoNovo,imgDefault,640,480)

ok1 = HAdd(T020Arquivo)

IF DebugSN = "S"
IF ok1 = True THEN
Info("Gravado na base de dados com sucesso!")
ELSE
Info("Erro ao gravar na base de dados")
END
END

END

END
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:22
PROCEDURE CAM_VideoGravar(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)

//Nao usados
Ambiente = Ambiente
Crypto = Crypto
OpcaoEscolha = OpcaoEscolha
CodigoArquivo = CodigoArquivo
CodOs = CodOs
CodOsItem = CodOsItem
NomeArquivo = NomeArquivo
Descricao = Descricao
VideoFoto = VideoFoto

IF gsDebugSN = "S"
DebugSN="S"
END

// Save the video sequence currently broadcasted
// in the "CAM_Camera" control as a segundos AVI

ResVideoBck is boolean = False

Arquivo = ""

gloGravacaoIniciada = 1

IF fDirectoryExist(gsAppDir) = False THEN
fMakeDir(gsAppDir)
END

IF fDirectoryExist(gsDirTempPhotos) = False THEN
fMakeDir(gsDirTempPhotos)
END

IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info("iniciando a gravação!...")
END

IF InSimulatorMode() = False THEN

//VALIDA CAMINHO
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 = ".jpg" THEN
Extensao = ".avi"
END

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

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

//GERA VIDEO
IF GloSom = "Ativado"
Sound("camera.wav",soundDefault)
END

IF INIRead("Camera","TipoTela","",AutorunPath) <> "FullScreen" THEN

ResVideoBck = VideoCapture(WIN_Camera_Desenvolvimento.CAM_Camera,...
Arquivo,...
viVideoCapture,...
TempoSegundos,...
FPS,
True)

//VERIFICA ERROS
ExecuteProcess(WIN_Camera_Desenvolvimento.BTN_Stop,trtClick)
IF ResVideoBck = False OR ErrorOccurred = True THEN
IF DebugSN = "S"
Error(ErrorInfo())
END
ELSE
ExecuteProcess(WIN_Camera_Desenvolvimento.BTN_Play,trtClick)
END

ELSE IF INIRead("Camera","TipoTela","",AutorunPath) = "FullScreen" THEN

ResVideoBck = VideoCapture(WIN_Camera_FullScreen.CAM_Camera,...
Arquivo,...
viVideoCapture,...
TempoSegundos,...
FPS,
True)

//VERIFICA ERROS
ExecuteProcess(WIN_Camera_FullScreen.BTN_Stop,trtClick)
IF ResVideoBck = False OR ErrorOccurred = True THEN
IF DebugSN = "S"
Error(ErrorInfo())
END
ELSE
ExecuteProcess(WIN_Camera_FullScreen.BTN_Play,trtClick)
END

END

ELSE
NextTitle("MotolinkOs")
Info("Modo Simulador")
END
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:23
PROCEDURE CAM_ParametrosVideo(LOCAL Tipo)

Resultado is string = ""

//Executa os Parametros

IF InSimulatorMode() = False
IF Tipo = "vipBalanceAuto"
Resultado = VideoParameter(vipBalance,vipBalanceAuto)
ELSE IF Tipo = "vipBalanceCloudy"
Resultado = VideoParameter(vipBalance,vipBalanceCloudy)
ELSE IF Tipo = "vipBalanceFluorescent"
Resultado = VideoParameter(vipBalance,vipBalanceFluorescent)
ELSE IF Tipo = "vipBalanceFluorescentWarm"
Resultado = VideoParameter(vipBalance,vipBalanceFluorescentWarm)
ELSE IF Tipo = "vipBalanceIncandescent"
Resultado = VideoParameter(vipBalance,vipBalanceIncandescent)
ELSE IF Tipo = "vipBalanceShadow"
Resultado = VideoParameter(vipBalance,vipBalanceShadow)
ELSE IF Tipo = "vipBalanceSunny"
Resultado = VideoParameter(vipBalance,vipBalanceSunny)
ELSE IF Tipo = "vipBalanceTwilight"
Resultado = VideoParameter(vipBalance,vipBalanceTwilight)
ELSE IF Tipo = "vipCameraBack"
Resultado = VideoParameter(vipCamera,vipCameraBack)
ELSE IF Tipo = "vipCameraFront"
Resultado = VideoParameter(vipCamera,vipCameraFront)
ELSE IF Tipo = "vipEffectAqua"
Resultado = VideoParameter(vipEffect,vipEffectAqua)
ELSE IF Tipo = "vipEffectBlackAndWhite"
Resultado = VideoParameter(vipEffect,vipEffectBlackAndWhite)
ELSE IF Tipo = "vipEffectNegative"
Resultado = VideoParameter(vipEffect,vipEffectNegative)
ELSE IF Tipo = "vipEffectNone"
Resultado = VideoParameter(vipEffect,vipEffectNone)
ELSE IF Tipo = "vipEffectPoster"
Resultado = VideoParameter(vipEffect,vipEffectPoster)
ELSE IF Tipo = "vipEffectSepia"
Resultado = VideoParameter(vipEffect,vipEffectSepia)
ELSE IF Tipo = "vipEffectSolarize"
Resultado = VideoParameter(vipEffect,vipEffectSolarize)
ELSE IF Tipo = "vipFlashAuto"
Resultado = VideoParameter(vipFlash,vipFlashAuto)
ELSE IF Tipo = "vipFlashOff"
Resultado = VideoParameter(vipFlash,vipFlashOff)
ELSE IF Tipo = "vipFlashOn"
Resultado = VideoParameter(vipFlash,vipFlashOn)
ELSE IF Tipo = "vipFlashRedEyes"
Resultado = VideoParameter(vipFlash,vipFlashRedEyes)
ELSE IF Tipo = "vipFlashTorch"
Resultado = VideoParameter(vipFlash,vipFlashTorch)
ELSE IF Tipo = "vipFlicker50Hz"
Resultado = VideoParameter(vipFlicker,vipFlicker50Hz)
ELSE IF Tipo = "vipFlicker60Hz"
Resultado = VideoParameter(vipFlicker,vipFlicker60Hz)
ELSE IF Tipo = "vipFlickerAuto"
Resultado = VideoParameter(vipFlicker,vipFlickerAuto)
ELSE IF Tipo = "vipFlickerOff"
Resultado = VideoParameter(vipFlicker,vipFlickerOff)
ELSE IF Tipo = "vipFocusAuto"
Resultado = VideoParameter(vipFocus,vipFocusAuto)
ELSE IF Tipo = "vipFocusContinuous"
Resultado = VideoParameter(vipFocus,vipFocusContinuous)
ELSE IF Tipo = "vipFocusDepthOfField"
Resultado = VideoParameter(vipFocus,vipFocusDepthOfField)
ELSE IF Tipo = "vipFocusFixed"
Resultado = VideoParameter(vipFocus,vipFocusFixed)
ELSE IF Tipo = "vipFocusInfinite"
Resultado = VideoParameter(vipFocus,vipFocusInfinite)
ELSE IF Tipo = "vipFocusMacro"
Resultado = VideoParameter(vipFocus,vipFocusMacro)
ELSE IF Tipo = "vipISOAuto"
Resultado = VideoParameter(vipISO,vipISOAuto)
ELSE IF Tipo = "vipSceneAction"
Resultado = VideoParameter(vipScene,vipSceneAction)
ELSE IF Tipo = "vipSceneAuto"
Resultado = VideoParameter(vipScene,vipSceneAuto)
ELSE IF Tipo = "vipSceneBarCode"
Resultado = VideoParameter(vipScene,vipSceneBarCode)
ELSE IF Tipo = "vipSceneBeach"
Resultado = VideoParameter(vipScene,vipSceneBeach)
ELSE IF Tipo = "vipSceneCandle"
Resultado = VideoParameter(vipScene,vipSceneCandle)
ELSE IF Tipo = "vipSceneFireworks"
Resultado = VideoParameter(vipScene,vipSceneFireworks)
ELSE IF Tipo = "vipSceneInterior"
Resultado = VideoParameter(vipScene,vipSceneInterior)
ELSE IF Tipo = "vipSceneLandscape"
Resultado = VideoParameter(vipScene,vipSceneLandscape)
ELSE IF Tipo = "vipSceneNight"
Resultado = VideoParameter(vipScene,vipSceneNight)
ELSE IF Tipo = "vipSceneNightPortrait"
Resultado = VideoParameter(vipScene,vipSceneNightPortrait)
ELSE IF Tipo = "vipScenePortrait"
Resultado = VideoParameter(vipScene,vipScenePortrait)
ELSE IF Tipo = "vipSceneSnow"
Resultado = VideoParameter(vipScene,vipSceneSnow)
ELSE IF Tipo = "vipSceneSport"
Resultado = VideoParameter(vipScene,vipSceneSport)
ELSE IF Tipo = "vipSceneSunset"
Resultado = VideoParameter(vipScene,vipSceneSunset)
ELSE IF Tipo = "vipSceneTheater"
Resultado = VideoParameter(vipScene,vipSceneTheater)
ELSE IF Tipo = "vipSceneVibration"
Resultado = VideoParameter(vipScene,vipSceneVibration)
ELSE IF Tipo = "165x100"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "165x100"
Resultado = INIWrite("Camera","Resolucao","165x100",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "230x155"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "230x155"
Resultado = INIWrite("Camera","Resolucao","230x155",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "300x200"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "300x200"
Resultado = INIWrite("Camera","Resolucao","300x200",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "400x255"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "400x255"
Resultado = INIWrite("Camera","Resolucao","400x255",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "450x240"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "450x240"
Resultado = INIWrite("Camera","Resolucao","450x240",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "535x280"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "535x280"
Resultado = INIWrite("Camera","Resolucao","535x280",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "580x320"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "580x320"
Resultado = INIWrite("Camera","Resolucao","580x320",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "640x480"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "640x480"
Resultado = INIWrite("Camera","Resolucao","640x480",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "700x380"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "700x380"
Resultado = INIWrite("Camera","Resolucao","700x380",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "800x480"
WIN_Camera_Desenvolvimento.EDT_Resolucao = "800x480"
Resultado = INIWrite("Camera","Resolucao","800x480",AutorunPath)
gloWidth = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,1,3)
gloHeight = Middle(WIN_Camera_Desenvolvimento.EDT_Compressao,5,3)
ELSE IF Tipo = "Compressao Jpg 100%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 100
Resultado = INIWrite("Camera","Compressao","100",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 90%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 90
Resultado = INIWrite("Camera","Compressao","90",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 80%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 80
Resultado = INIWrite("Camera","Compressao","80",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 70%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 70
Resultado = INIWrite("Camera","Compressao","70",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 60%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 60
Resultado = INIWrite("Camera","Compressao","60",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 50%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 50
Resultado = INIWrite("Camera","Compressao","50",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 40%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 40
Resultado = INIWrite("Camera","Compressao","40",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 30%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 30
Resultado = INIWrite("Camera","Compressao","30",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 20%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 20
Resultado = INIWrite("Camera","Compressao","20",AutorunPath)
ELSE IF Tipo = "Compressao Jpg 10%"
WIN_Camera_Desenvolvimento.EDT_Compressao = 10
Resultado = INIWrite("Camera","Compressao","10",AutorunPath)
ELSE IF Tipo = "CriarArquivoIniVideoTeste"
//Arquivo INI
//[Camera]
//FPS = 5
//Segundos = 10
//Local = gsAppDir
//Extensao = ".avi"
//Executar = "Video"
//Ambiente = "Teste"
//Debug = "S"
INIWrite("Camera","FPS",5,AutorunPath)
INIWrite("Camera","Segundos",10,AutorunPath)
INIWrite("Camera","Local",gsAppDir,AutorunPath)
INIWrite("Camera","Extensao",".avi",AutorunPath)
INIWrite("Camera","Executar","Video",AutorunPath)
INIWrite("Camera","Ambiente","Teste",AutorunPath)
Resultado = INIWrite("Camera","Debug","N",AutorunPath)

ELSE IF Tipo = "CriarArquivoIniVideoProducao"
//Arquivo INI
//[Camera]
//FPS = 5
//Segundos = 10
//Local = gsAppDir
//Extensao = ".avi"
//Executar = "Video"
//Ambiente = "Teste"
//Debug = "S"
INIWrite("Camera","FPS",5,AutorunPath)
INIWrite("Camera","Segundos",10,AutorunPath)
INIWrite("Camera","Local",gsAppDir,AutorunPath)
INIWrite("Camera","Extensao",".avi",AutorunPath)
INIWrite("Camera","Executar","Video",AutorunPath)
INIWrite("Camera","Ambiente","Producao",AutorunPath)
Resultado = INIWrite("Camera","Debug","",AutorunPath)

ELSE IF Tipo = "CriarArquivoIniFotoTeste"
//Arquivo INI
//[Camera]
//FPS = 5
//Segundos = 10
//Local = gsAppDir
//Extensao = ".avi"
//Executar = "Video"
//Ambiente = "Teste"
//Debug = "S"
INIWrite("Camera","FPS",5,AutorunPath)
INIWrite("Camera","Segundos",10,AutorunPath)
INIWrite("Camera","Local",gsAppDir,AutorunPath)
INIWrite("Camera","Extensao",".jpg",AutorunPath)
INIWrite("Camera","Executar","Foto",AutorunPath)
INIWrite("Camera","Ambiente","Teste",AutorunPath)
Resultado = INIWrite("Camera","Debug","N",AutorunPath)

ELSE IF Tipo = "CriarArquivoIniFotoProducao"
//Arquivo INI
//[Camera]
//FPS = 5
//Segundos = 10
//Local = gsAppDir
//Extensao = ".avi"
//Executar = "Video"
//Ambiente = "Teste"
//Debug = "S"
INIWrite("Camera","FPS",5,AutorunPath)
INIWrite("Camera","Segundos",10,AutorunPath)
INIWrite("Camera","Local",gsAppDir,AutorunPath)
INIWrite("Camera","Extensao",".jpg",AutorunPath)
INIWrite("Camera","Executar","Foto",AutorunPath)
INIWrite("Camera","Ambiente","Producao",AutorunPath)
Resultado = INIWrite("Camera","Debug","",AutorunPath)

END
END

RESULT(Resultado)
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:23
PROCEDURE CAM_ImagemToArrayBytes(LOCAL PathImagem, LOCAL Tipo)

//Converter a imagem de um local do disco em Array de Bytes e gravar via webservice
///////////////////////////////////////////////////////////////////////////////////

ImagemArrayBytes is Buffer = ""

IF Tipo = "" OR Tipo = 0 THEN
ImagemArrayBytes = fLoadBuffer(PathImagem)
ELSE IF Tipo = 1
ImagemArrayBytes = fLoadBuffer(T020Arquivo.PathUrl020)
//Compactacao//
ImagemArrayBytes = Crypt(ImagemArrayBytes,"",cryptNone)
//ImagemArrayBytes = URLEncode(ImagemArrayBytes)
END

RESULT(ImagemArrayBytes)
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:24
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/MotolinkOs/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("MotolinkOs")
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/MotolinkOs/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("MotolinkOs")
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("MotolinkOs")
Info("Arquivo não foi gerado!")
END

END

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

//Somente para o projeto PADO
//IF Ambiente = "Producao" THEN
//Close()
//END
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:24
PROCEDURE CAM_Enviar2WS(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)

//info("CAM_Enviar2WS")
IF gsDebugSN = "S"
DebugSN="S"
END

//Nao usados
ArquivoLocal = ArquivoLocal
Extensao = Extensao
Ambiente = Ambiente
OpcaoEscolha = OpcaoEscolha
CodigoArquivo = CodigoArquivo
NomeArquivo = NomeArquivo
TempoSegundos = TempoSegundos
FPS = FPS


//Verifica GPS Ligado e retona para variaveis globais a latitude e longitude
GPS_LatitudeLongitudeAtual("")
IF gsLatitude = "" THEN
gsLatitude = 0
gsLongitude = 0
END

IF ConexaoInternet(0) = 1 AND Crypto <> "" THEN


IF DebugSN = "S" THEN
Info("Com conexão ok")
END

Crypto = WS_Criptografia(GloLogin +"-"+ GloSenha +"-"+ GloImei, "C", DebugSN)

//Verifica
IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info(Crypto, CodigoArquivo, CodOsItem, NomeArquivo, Descricao, VideoFoto, DebugSN)
END

//Autenticacao
request is GetAutenticacao
response is GetAutenticacaoResponse

Autentica, sTeste1, sTeste2, sTeste3, sTeste4 is string = ""

//Dados:
request.chave = Crypto //Chave passada por parametro

IF DebugSN = "S" THEN
Info("Cripto: "+Crypto)
END

//Envio
response = GetAutenticacao(request)
IF ErrorOccurred = True THEN

sTeste1 = response.GetAutenticacaoResult.Erro
sTeste2 = response.GetAutenticacaoResult.Erro.Mensagem
sTeste3 = response.GetAutenticacaoResult.Erro.Numero
sTeste4 = response.GetAutenticacaoResult.Erro.Descricao

NextTitle("Erro na autenticacao:")
Info(sTeste1,sTeste2,sTeste3,sTeste4)

ELSE

Autentica = response.GetAutenticacaoResult.Chave

IF DebugSN = "S" THEN
Info("Autenticacao OK",Autentica)
END

IF DebugSN = "S" AND Autentica <> "" THEN
NextTitle("MotolinkOs")
Info("OK- Autenticou",Autentica)
ELSE IF DebugSN = "S" AND Autentica = ""
NextTitle("MotolinkOs")
Info("Erro na autenticacao",Autentica, VideoFoto, Crypto)
END

//Envio do arquivo
//Busca registro
HReadSeekFirst(T020Arquivo,T020Arquivo.CodArquivo020,CodigoArquivo)
IF HFound(T020Arquivo) = False THEN

IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info("Erro: Faltou parametros ou dados não encontrados...", ErrorInfo(),ErrorOccurred)
END

ELSE IF HFound(T020Arquivo) = True THEN

IF DebugSN = "S" THEN
NextTitle("MotolinkOs")
Info("Achou o registro a ser enviado",VideoFoto)
END

//Webservice

//Conecta com o metodo do webservice
requestfoto is ArquivoGravar
responsefoto is ArquivoGravarResponse

//Converter a imagem de um local em Array de Bytes e gravar via webservice
///////////////////////////////////////////////////////////////////////////

ImagemArrayBytes is Buffer = fLoadBuffer(T020Arquivo.PathUrl020)

IF DebugSN = "S" THEN
Info(Length(ImagemArrayBytes))
END

///////////////////////////////////////////////////////////////////////////

//Dados:
requestfoto.autenticacao = Autentica
requestfoto.codOrdemServico = CodOs
requestfoto.codOrdemServicoStatus = CodOsItem
requestfoto.descricao = Descricao
requestfoto.data = Middle(DateSys(),1,4) +"-"+ Middle(DateSys(),5,2) +"-"+ Middle(DateSys(),7,2) //Ano-mes-dia
requestfoto.latitude = gsLatitude
requestfoto.longitude = gsLongitude
requestfoto.arquivo = ImagemArrayBytes

//-----------tipo foto ou video
IF VideoFoto = "Foto"
requestfoto.codTipoArquivo = 1
ELSE IF VideoFoto = "Video"
requestfoto.codTipoArquivo = 2
ELSE
requestfoto.codTipoArquivo = 1
END
//-----------tipo foto ou video


//Envia
responsefoto = ArquivoGravar(requestfoto)
IF ErrorOccurred = True THEN
sTeste1 = responsefoto.ArquivoGravarResult.Erro
sTeste2 = responsefoto.ArquivoGravarResult.Erro.Descricao
sTeste3 = responsefoto.ArquivoGravarResult.Erro.Mensagem
sTeste4 = responsefoto.ArquivoGravarResult.Erro.Numero

NextTitle("Erro no envio da Foto")
Info(CodOsItem,Descricao,sTeste1,sTeste2,sTeste3,sTeste4)

ELSE


T020Arquivo.Enviada020 = "S"
HModify(T020Arquivo)

NextTitle("MotolinkOs")
Info("OK-Enviou a foto para o webservice com sucesso.")


END

END

IF fFileExist(T020Arquivo.PathUrl020) = False THEN
NextTitle("MotolinkOs")
Info("Caminho inexistente ou em branco!...")
END

END

END

Close()

Close()
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 14 mai 2014 - 18:25
PROCEDURE CAM_CompressaoJpeg(LOCAL Compressao)

okimg is boolean = False

//Modifica a resolucao da imagem criada

IF Compressao <> ""

WIN_Camera_Desenvolvimento.CAM_Camera = Arquivo

IF Compressao = 100 THEN
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,100,imgProgressiveJPEG)
ELSE IF Compressao = 90
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,90,imgProgressiveJPEG)
ELSE IF Compressao = 80
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,80,imgProgressiveJPEG)
ELSE IF Compressao = 70
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,70,imgProgressiveJPEG)
ELSE IF Compressao = 60
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,60,imgProgressiveJPEG)
ELSE IF Compressao = 50
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,50,imgProgressiveJPEG)
ELSE IF Compressao = 40
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,40,imgProgressiveJPEG)
ELSE IF Compressao = 30
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,30,imgProgressiveJPEG)
ELSE IF Compressao = 20
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,20,imgProgressiveJPEG)
ELSE IF Compressao = 10
okimg = dSaveImageJPEG(WIN_Camera_Desenvolvimento.CAM_Camera,Arquivo,10,imgProgressiveJPEG)
END

WIN_Camera_Desenvolvimento.CAM_Camera = Arquivo

END

RESULT(okimg)