[Gambas-user] Picture.ToString() ?

vuott at tutanota.com vuott at tutanota.com
Sat Dec 30 14:10:27 CET 2023


To convert a 4 char string block back to integer though, you can use:

   dim i As Integer

   i = Int@(s)

Example:

   Dim s As String
   Dim i As Integer = 99
    
    s = MkInt(i)
    Print s
    Print Int@(s)





30 dic 2023, 14:03 da bsteers4 at gmail.com:

> aah yes i guess that could work.  at the other end i'd just need size info, say width, then the image height is String.Len / 4 / width
>
>   Public Sub PictureToString(Pic As Picture) As String
>     
>     Dim s As String = Str(Pic.W) & "\n"
>   
>     For Each i As Integer In pc.Image.Pixels
>       s &= MkInt(i)
>     Next
>  
>     Return s
>  
>   End
>
> How do you convert a 4 char string block back to integer though?
> CInt didn't work (i tried a few different things)
>
> Dim s As String = MkInt(Color.Red)
> Print CInt(s)
>
>
> Type mismatch: wanted Integer, got String instead
>
> Respects
> BruceS
>
>
> On Sat, 30 Dec 2023 at 12:20, vuott--- via User <> user at lists.gambas-basic.org> > wrote:
>
>> Hello,
>> if you want to send "pure" image data, "perhaps" you could do this:
>>
>> - To send blocks of "Integer" data converted to memory representation as a 4-character string:
>>
>>   Public Sub PictureToString(Pic As Picture) As String
>>     
>>     Dim s As String
>>   
>>     For Each i As Integer In pc.Image.Pixels
>>       s &= MkInt(i)
>>     Next
>>  
>>     Return s
>>  
>>   End
>>
>>
>> - To send blocks of individual "Byte "data converted to memory representation as a 1-character string:
>>
>>   Public Sub PictureToString(Pic As Picture) As String
>>     
>>     Dim s As String
>>   
>>     For i As Integer = 0 To (pc.Image.Pixels.Max * (pc.Depth / 8))
>>       s &= MkByte(Byte@(pc.Image.Data + i))
>>     Next
>>  
>>     Return s
>>  
>>   End
>>
>>
>>
>>
>>
>>
>> 30 dic 2023, 01:46 da >> bsteers4 at gmail.com>> :
>>
>>> If there any simpler (non-file) way to get the opposite of Picture.FromString()
>>> I wanted a way to transmit image data using Print in Task.class.
>>>
>>> This works for me but wondered if there was a faster way than a physical file?
>>>
>>>
>>> Public Sub PictureToString(Pic As Picture) As String
>>>  
>>>   Dim sTmp As String = File.SetExt(Temp("tmp-pic"), "png")
>>>   Pic.Save(sTmp)
>>>   Return File.Load(sTmp)
>>>  
>>> End
>>> Respects
>>> BruceS
>>>
>>>
>>
>>
>> ----[ >> http://gambaswiki.org/wiki/doc/netiquette>>  ]----
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20231230/1ff31176/attachment.htm>


More information about the User mailing list