German JPEG-Library Frame Format Error / interne Camera Bilder

medsolv

New Member
Licensed User
Longtime User
Hallo,

ich versuche eine Bild, das ich mit der Advanced Camera Library aufgenommen habe wieder mit der JPEG-Library zu laden.

Das Bild wird folgendermaßen gespeichert:

B4X:
Sub cam_PictureTaken (Data() As Byte)
    cam.StartPreview
    Dim out As OutputStream
    out = File.OpenOutput(File.DirRootExternal, aktCamPatId&".jpg", False)
    out.WriteBytes(Data, 0, Data.Length)
    out.Close
    cam.Release
    ToastMessageShow("Image saved: " &  File.Combine(File.DirRootExternal, aktCamId&".jpg"), True)
End Sub

Das Bild scheint auch soweit in Ordnung zu sein, lässt sich mit Galerie etc. problemlos laden. Beim Laden in der Anwendung bekomme ich folgenden Fehler: java.lang.Exception: Jpeg error: Frame format error [Lf!=count]. Ich lade das Bild folgendermaßen:

B4X:
Dim in As InputStream
Dim bmp As Bitmap
Dim ajpg As Jpeg
ajpg.Initialize("Jpeg")
in = File.OpenInput(File.DirRootExternal, aktCamPatId&".jpg")
ajpg.LoadJpegSizeOnly(in)
in = File.OpenInput(File.DirRootExternal, aktCamPatId&".jpg")   
bmp = ajpg.LoadJpegSmaller(in, Jpg.JpegHeight/ImageView1.Height)

Bei Jpg.LoadJpegSizeOnly(in) wird der Fehler geschmissen. Der Fehler tritt bei zwei unterschiedlichen Devices (LG Optimus Speed, Lenovo A1) auf. Ich denke nicht, dass es ein Hardwareproblem ist.

Da Termindruck besteht, brauche ich dringend eine Lösung für das Problem.

Vielen Dank im Voraus

Markus
 

medsolv

New Member
Licensed User
Longtime User
Problem umgangen

Hallo an alle,

habe das Problem umgangen, indem ich das JPEG direkt dem Bitmap zuweise:

B4X:
bmp.Initialize(File.DirRootExternal, aktCamPatId & ".jpg")

Damit kann ich die Größe und andere Parameter beim Laden zwar nicht mehr beeinflussen, aber damit muss ich halt zunächst leben. Falls jemand trotzdem eine Lösung für das JPEG-Laden hat, würde ich das gerne nutzen.

Grüße

Markus
 
Top