Android Question Trouble converting string to image

microbox

Active Member
Licensed User
Longtime User
Hello everyone...I am able to save image to remote database. But not stable most of the time it fails to convert it back to image.
Here is the code I'm using..
B4X:
Case "SearchImageId" 
                Dim ListOfImage As List
                Dim repId As String
                Dim image As String
                ListOfImage = parser.NextArray 'returns a list with maps
                If ListOfImage.Size=0 Then
                    Log("No rep_id IMAGE found...")
                Else
                    Log("Size of List: "& ListOfImage.Size)
                    For i = 0 To ListOfImage.Size - 1
                        Dim MyData As Map
                        MyData = ListOfImage.Get(i)
                        repId = MyData.Get("rep_id")
                        image = MyData.Get("image")
                    Next
                    Try
                    Log(repId & " " &image.Length)
                    Dim im As Bitmap
                    im.Initialize2(blobToIO(image))
                    imgphoto.SetBackgroundImage(im)
                    Log("Image Found!!")
                    Catch()
                    Log("Error conversion to image file.")
                    End Try
                End If
Most of the time I'm getting "Error conversion to image file." Any help is much appreciated.
 

Toky Olivier

Active Member
Licensed User
Longtime User
Can you try to comment the Try Catch() Block and post the Logs or show the exception message by adding Log(LastException.Message) for example in the Catch part?
 
Upvote 0

microbox

Active Member
Licensed User
Longtime User
Can you try to comment the Try Catch() Block and post the Logs or show the exception message by adding Log(LastException.Message) for example in the Catch part?
Here is the error logs...Thank you for helping out.
B4X:
PackageAdded: package:remotedb.tac
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
Folder Exist!
/storage/emulated/0/TacIssuesAndConcern
*** Service (httputils2service) Create ***
** Service (httputils2service) Start **
Size of List: 1
null 270484
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
Message longer than Log limit (4000). Message was truncated.
main_jobdone (java line: 950)
java.lang.RuntimeException: Error loading bitmap.
    at anywheresoftware.b4a.objects.drawable.CanvasWrapper$BitmapWrapper.Initialize2(CanvasWrapper.java:539)
    at remotedb.tac.main._jobdone(main.java:950)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:196)
    at anywheresoftware.b4a.keywords.Common$11.run(Common.java:1179)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:146)
    at android.app.ActivityThread.main(ActivityThread.java:5602)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
    at dalvik.system.NativeStart.main(Native Method)
 
Last edited:
Upvote 0

Peter Simpson

Expert
Licensed User
Longtime User
@microbox you should be using Wait For. Here you go, read and study Erels post extremely careful CLICK HERE
 
Upvote 0

microbox

Active Member
Licensed User
Longtime User
I modified the code works great as expected but I think the problem is pointing to the image conversion part. Kindly check the code I'm using.
B4X:
    Dim FetchDataFromServer As HttpJob
    FetchDataFromServer.Initialize("SearchImageId",Me)
    FetchDataFromServer.Download2("http://" & ServerIP ,    Array As String("action","SearchImageId","rep_id",m0))
    Wait For (FetchDataFromServer) JobDone(FetchDataFromServer As HttpJob)
        If FetchDataFromServer.Success Then
            Dim res As String
            res = FetchDataFromServer.GetString
            Dim parser As JSONParser
            parser.Initialize(res)
            Dim ListOfImage As List
            Dim repId As String
            Dim image2 As String
            ListOfImage = parser.NextArray 'returns a list with maps
                    If ListOfImage.Size=0 Then
                        Log("No rep_id IMAGE found...")
                    Else
                        Log("Size of List: "& ListOfImage.Size)
                        For i = 0 To ListOfImage.Size - 1
                            Dim MyData As Map
                            MyData = ListOfImage.Get(i)
                            image2 = MyData.Get("image")
                            Log("Image Found!!")
                        Next
                        Log(">> " &image2.Length)
            Dim im As Bitmap
            im.Initialize2(blobToIO(image2)) ' << -- this the problem'

B4X:
public Sub blobToIO(bySt As String) As InputStream
    Log(bySt & " in blobToIO function --")
    Dim su As StringUtils
    Dim by() As Byte = su.DecodeBase64(bySt)
    Dim InputStream1 As InputStream
    InputStream1.InitializeFromBytesArray(by, 0, by.Length)
    InputStream1.Close
    Return InputStream1
End Sub
 
Upvote 0
Top