Italian CameraEx2

Surreal

Member
Licensed User
Longtime User
Buona sera a tutti
Pensate si possa ottenere in qualche modo che CameraEx2 possa fotografare anche in Orizzontale?
Leggendo le info con Exif risulta infatti sempre 90° CW
Al momento sembra possa farlo solo in Verticale, sarebbe il Top.

Grazie a tutti.
 

b4x-de

Active Member
Licensed User
Longtime User
Cameraex2 mi funziona anche in formato orizzontale. Tuttavia, non uso B4xPages, ma una vera e propria Activity per esso. Forse non funziona perché la rotazione del dispositivo non è supportata da B4xPages. Si può provare l'approccio qui, che utilizza i sensori di posizione:

 

Surreal

Member
Licensed User
Longtime User
Cameraex2 mi funziona anche in formato orizzontale. Tuttavia, non uso B4xPages, ma una vera e propria Activity per esso. Forse non funziona perché la rotazione del dispositivo non è supportata da B4xPages. Si può provare l'approccio qui, che utilizza i sensori di posizione:

Grazie, fatto
in qualche modo posso accontentarmi, ma quello che mi fa strano è perchè quando ruoto il cellulare da portrait in landscape l'immagine di anteprima () va in distorsione :-(
Ho provato in tutti i modi :(
 

Sagenut

Expert
Licensed User
Longtime User
Se ti è possibile allegare il progetto, o un progetto di esempio che mostri il problema, sarà più facile provare ad aiutarti.
 

Surreal

Member
Licensed User
Longtime User
Se ti è possibile allegare il progetto, o un progetto di esempio che mostri il problema, sarà più facile provare ad aiutarti.
Intanto grazie per la pazienza,
ho semplicemente scaricato l'esempio CamEx2.zip in formato portrait nessun problema di visualizzazione ma non appena passo in modalità landscape,
ovviamente utilizzando il metodo phone.SetScreenOrientation(0) l'immagine a video si distorce come se aumentasse lo zoom e non mantenesse le "proporzioni"
spero di essermi spiegato.

// CORRETTO //
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Nome")
Activity.LoadLayout("StillPicture")
Activity.Title = "Nome"

VideoFileDir = extDBUtils.GetImageFolder
VideoFileName = "scac_" & extDBUtils.Ticks2Date("yyyyMMddHHmmss",DateTime.Now) & ".mp4"
cam.Initialize(pnlCamera)
Log(cam.SupportedHardwareLevel)

buttons = Array(btnScene, btnAutoExposure, btnEffects, btnFocus, btnMode)

SetState_cam(False, False, VideoMode)

Dim p As Phone
p.SetScreenOrientation(0)


End Sub
 
Last edited:

Sagenut

Expert
Licensed User
Longtime User
Come ti hanno detto, i progetti B4XPages non supportano la rotazione.
Serve usare degli stratagemmi per adattare le cose.
Il tuo problema credo dipenda dal fatto che richiedi al telefono di forzarsi in Landscape, ma il layout è per Portrait e il progetto effettivamente lavora in Portrait.
L'unica soluzione che mi viene in mente è di rifare il progetto con le Activity.
O forse sarà necessario creare 2 Pages, una per il Portrait e una per il Landscape.
Ma non ne sono sicuro.
 

Surreal

Member
Licensed User
Longtime User
Come ti hanno detto, i progetti B4XPages non supportano la rotazione.
Serve usare degli stratagemmi per adattare le cose.
Il tuo problema credo dipenda dal fatto che richiedi al telefono di forzarsi in Landscape, ma il layout è per Portrait e il progetto effettivamente lavora in Portrait.
L'unica soluzione che mi viene in mente è di rifare il progetto con le Activity.
O forse sarà necessario creare 2 Pages, una per il Portrait e una per il Landscape.
Ma non ne sono sicuro.
Infatti per questo uso le Activity, forse seguo la tua intuizione faccio due pagine e a seconda del Sensore Accelerometer apro una o l'altra.
Certo è che è Strano.
 

Sagenut

Expert
Licensed User
Longtime User
Puoi anche usare il progetto base in B4XPages.
Dovrai solo cambiare il layout dei pulsanti sulla foto per adeguarti a portrait o Landscape, e poi di conseguenza salvare la foto ruotata per vederla correttamente.
In teoria.
Dovrei provare.
 

Surreal

Member
Licensed User
Longtime User
Tranquillo il progetto è abbastanza grande e usare il progetto base in B4XPages non ci penso ;-)
ho semplicemente introdotto questo avviso in Activity_Create:

If FirstTime Then
accelerometer.Initialize(accelerometer.TYPE_ACCELEROMETER)
End If

If LastOrientation <> 4 Or LastOrientation <> 6 Then
Dim icon As B4XBitmap = xui.LoadBitmapResize(File.DirAssets, "warning_camera.png", 60dip, 60dip, True)
Dim sf As Object = xui.Msgbox2Async("Orientamento Fotocamera non coretto!" & Chr(13) & Chr(13) & "Posizionarla Orizzontalmente e proseguire." ,"Attenzione", "", "OK", "", icon)
Wait For (sf) Msgbox_Result (Result As Int)
End If

poi mi ruoto la foto prima di salvarla, perchè è essenziale che sia in formato orizzontale.
Mi va bene lo stesso. Pazienza poi ci riprovo con calma
 
Top