String to bitmap?

Jamsa

Member
Licensed User
Longtime User
Hi

I've got a string with a bitmap in it, and I want to convert it to a bitmap, but how??

I can't find a "string to bitmap" function anywhere.
 
I have a textfile with various information including some bitmaps.

I Then load the information into a list of objects, and one of the properties of these objects is a bitmap.

The object type:
Code: Copy
Type AppInfo (ID As String, Name As String, Version As Int, VersionDate As Long, _
   LastUpdated As Long, Bundled As Boolean, DownloadsCount As Long, _
   UsersRating As Int, OrgRating As Int, SystemRating As Int, _
   ExpertRating As Int, MoreInfoLink As String, TimesUsed As Int, _
   LastUsed As Long, LastNagged As Long, CurrentClassification As Int, _
   AppIcon As Bitmap)

The textfile-loadfunction:
Code: Copy
If File.Exists(File.DirRootExternal, FileName) = True Then
   strTest = File.ReadString(File.DirRootExternal, FileName)
   TempApps = Split(strTest,"[|]")
      
   For i = 0 To TempApps.Length - 1
      Dim Temp() As String
      Dim App As AppInfo
         
      Temp = Split(TempApps(i),"[,]")
         
      App.ID = Temp(0)
      App.Name = Temp(1)
...
...
      App.AppIcon = Temp(16)
         
   Next
End If
 
Upvote 0
You cannot simply write a Bitmap to a text file. It gets converted to some meaningless string (its Java class name).

The easiest solution is to save each bitmap in its own file.
You can write it to a file with this code:
Code: Copy
Dim out As OutputStream
out = File.OpenOutput(File.DirInternal, "bmp.jpg", False)
App.AppIcon.WriteToStream(out, 100, "JPG")
out.Close
 
Upvote 0
Hmm...yeah I though so. :-/

But it looks like a slow process - I have around 100-200 bitmaps.

Is there a smarter/faster way?
 
Upvote 0
It's the normal sized app icons.

Thing is, all the other stuff I'm doing before, and after this makes the totalt process slow enough, so I would really like not having something to slow it down too much more. :)
 
Upvote 0
...so i'm guessing there's no way to do it without a stream.

Ok I'll try it and see if it works fast enough.

Thanks. :):)
 
Upvote 0
Hi.

First of all I'd like to introduce me. My name is Antonio Carlos from Brazil.

I've just started to work with Basic4Android and I'm in a hurry to say "I LOVE IT!!!"

Before using B4A I never created any app for android, due I'm not a Java programmer, but with B4A in just few hours I' could run my first app in my device.

Thanks to this dynamic forum!!

Now returning to this subject...

A simple way to write a string containing a image can be as follow:

Code: Copy
Sub Globals
    '// 
    '// The string image can be created using Sencha IO as shown:
    '// http://src.sencha.io/data/http://www.alphatour.com.br/wp-content/uploads/2013/08/AlphaTour_LOGO_230x95b.png
    '//
    
    Dim su As StringUtils
    Dim Logo = "data:image/png;base64,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"
    Dim imgLogo As ImageView
  
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("frmMain")
    Logo = Logo.SubString(Logo.IndexOf(",")+1)
    Dim buffer() As Byte
    Dim b As Bitmap
    buffer = su.DecodeBase64(Logo)
    Dim In As InputStream
    In.InitializeFromBytesArray(buffer, 0, buffer.Length)
    b.Initialize2(In)
    imgLogo.Bitmap = b
End Sub


Best Regards

AC
 

Attachments

Upvote 0
Back
Top