QB64.org Forum

Active Forums => Programs => Topic started by: Petr on December 21, 2019, 05:13:14 pm

Title: Compressed image as DATA in own source code
Post by: Petr on December 21, 2019, 05:13:14 pm
Hi.
I developed my own compression routine for simple images. It doesn't work for complex photos, but for simple pictures like the one in the attachment. On purpose. How to insert the attached image into the source code while preserving the size of the source code 19044 bytes (of course, it could be created using internal commands, but we are talking about inserting the photo into the source code).

Code: QB64: [Select]
  1. DATA 592,435: 'width, height
  2. DATA 2205,5,2205: 'UBOUNDy pro Popis, PoleBarev, PrepniBarvu, v tomto poradi je to dale zapsano
  3. '    PRINT PoleBarev(Load2)
  4.  
  5. FOR Load3 = 0 TO UPrepniBarvu
  6.     READ pb$
  7.     PrepniBarvu(Load3) = VAL("&H" + pb$)
  8.  
  9. RESTOREPIC width, height, popis(), PoleBarev(), PrepniBarvu()
  10.  
  11. SUB RESTOREPIC (sirka, vyska, popis() AS LONG, PoleBarev() AS _UNSIGNED LONG, PrepniBarvu() AS LONG)
  12.     SCREEN _NEWIMAGE(sirka, vyska, 32)
  13.     j = -1
  14.     MaximalniOffset = MAXSIZEOF(PrepniBarvu())
  15.     DIM i AS LONG
  16.     FOR h = 0 TO vyska - 1
  17.         FOR w = 0 TO sirka - 1
  18.             'vyhledat, jestli mam prepnout barvu
  19.  
  20.             IF i < MaximalniOffset THEN
  21.                 FOR T = OldT TO UBOUND(prepnibarvu)
  22.                     IF i = PrepniBarvu(T) THEN
  23.                         j = j + 1
  24.                         COLOR PoleBarev(popis(j))
  25.                         OldT = T
  26.                     END IF
  27.  
  28.                     IF PrepniBarvu(T) > i THEN EXIT FOR
  29.                 NEXT T
  30.             END IF
  31.  
  32.             PSET (w, h)
  33.             i = i + 1
  34.     NEXT w, h
  35.  
  36. FUNCTION MAXSIZEOF (a() AS LONG)
  37.     FOR t = LBOUND(a) TO UBOUND(a) - 1
  38.         IF MAXSIZEOF < a(t) THEN MAXSIZEOF = a(t) + 1
  39.     NEXT
  40.  

  [ This attachment cannot be displayed inline in 'Print Page' view ]  
Title: Re: Compressed image as DATA in own source code
Post by: SMcNeill on December 21, 2019, 06:29:51 pm
When we finally update to v1.4, QB64 will come with ZLIB compression routines included.  Then you’d be able to just do something like:

DIM m AS _MEM: m = _MEMIMAGE(imagehandle)
temp$ = SPACE$(m.SIZE)
_MEMGET m, m.OFFSET, temp$ ‘Put the image to a temp string

compressed$ = _DEFLATE(temp$) ‘compress it

uncompressed$ = _INFLATE(compressed$) ‘uncompress it
Title: Re: Compressed image as DATA in own source code
Post by: Petr on December 21, 2019, 06:53:00 pm
Hi Steve.
I'll take a look at this feature. I realized that further compression could be achieved by expanding the set of letters. So to be more precise, let's give it the HEX$ command. It uses a maximum of F as the number 15. I'm thinking of a custom function that would use other letters to distinguish a value. The 16-bit HEX$ is an inspiration for me, but there is an obvious possibility of expansion. Writing number 15 would still be F, but number 16 would be G ... well I'll try to think about it again. The point is to use the full range, which is directly viewable in a text mode editor for this purpose.

And you're talking about it. Of course I was inspired by the GIF compression algorithm. As always, I did it in my own way, so as how I understand it.
Title: Re: Compressed image as DATA in own source code
Post by: SMcNeill on December 21, 2019, 07:05:53 pm
A-Z is 26 letters
a-z is 26 more.
0-9 is 10 more.
Add 2 more characters you like (@#), that’d give you a total of 64 characters, which would be a nice expansion over 16-character hex$, and still a nice power of 2.  ;)
Title: Re: Compressed image as DATA in own source code
Post by: AndyA on December 22, 2019, 09:32:18 pm
Hi guys,

It looks to me as if you are re-inventing Base64 encoding. It's supported by most browsers.

The main advantage over Hex is that Base64 is 66% smaller due to more bits are being used when encoding, as Steve mentioned. 6 bits vs. 4 bits.

Base64 is standardized (for the most part) and can be used to paste images or zip files in the browser search window. Correct mime-type must be specified. See: https://en.wikipedia.org/wiki/Base64 (https://en.wikipedia.org/wiki/Base64)
and also https://en.wikipedia.org/wiki/Data_URI_scheme (https://en.wikipedia.org/wiki/Data_URI_scheme)


In this example the image is specified as a jpeg. To view the image, copy and paste the date into the browser search window.

Using Chrome:
1) Copy the data from the code box below.
2) Open Chrome and right click in the search window (where you type your question or URL)
3) From the pop-up menu, select "Past and go..."
4) A new tab shows up with the decoded image. You can right click on the image and save to disk.


Curly Fern IFS image: 100x75
Code: [Select]
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QCMRXhpZgAATU0AKgAAAAgABwEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAASAAAAclEQAAEAAAABAQAAAFERAAQAAAABAAAAAFESAAQAAAABAAAAAAAAAAAAAABgAAAAAQAAAGAAAAABUGFpbnQuTkVUIHYzLjUuMTEA/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdfYmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8AAEQgASwBkAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A4iiiiszqCiipIYJZ22wxPI3oik0AR06ON5ZAkalmboAOTW3pukKjo1/Gwd+RGwIwB3P+FWmvbSN5o4YIIWDlMgbW2jnOe+cVm6nRDsZq+Hr5kVj5SluitIM+9Wl0G1SOMT3jiSQErtTjA6nGelPvrmWSfz4i4g2BGyhIwDnjHb64p7W73sccofcyfdJTKjtjg5/PNRzS6uw7IYdH0yERxz3E3mSglSCAMDvjH6U3+xNPdjDFfHzwAcnG3ntWiLS2WWEuwjYkYwdoY+hPQ/jg1MxhhE8siENGypKGOAQehB6Hr/Q1HO+47I5+Xw9cGNZbOWO6jbup2/z6/hWU6NG5R1KsOoIwRXYi40xGAWaNWiLIjLID0X73v6fnUl/pseo2+C4kwMRT5JYfX1BP4VaqtfEHL2OIopzIyOysMMpwR6GityBtFFXdLtknmZpRmOIbiufvegpN21AhtLWW6mWONGIJALAcCumtn8m0mjslKsoKxgdc88+5onv3s7S3eJtke8GTy+CBzwB2FZn2397I27zi55AXlsn/AD+dYu8yth66o000YHmNIoC7CcnPQ8n86RommcTmSJbhuAQu4D0/TuaZsDKzzTbJWOJDGoz9OOAPWrViggIA86ZV55AGevHTP603ZbBuTWiAIDLNuZc4ZSQTzz2x265qY3MaMsNwlzEGICv94ZwO6nP+RSFLpx+5lkh4AH7sPxg/49faq15ez2tjNBqMSyvMpETxrhc9yfocHGKztzMYzVr5rJLnTpD9pbKlHYg+WOuD6/5+lYVzczXUzSzyNJI3UmoqK6IxUUS3cK2dE1aPTIZzI0sjOMLEB8ufXOf6VjUU2lJWYloOkkaSRpG+8xJP1optFMCzZWcl5IVQ7VXlmI4AroIrGxsYWtzLO0sqbzgDCgdD+vTNZ1gRHpgIwC8pBzxnAGB+v61avVa68uaBys4HynPDDrj/ACe9Yzbbt0KWwyC4VkEZIKn1GRjPv16VTt4ss89pGUbO2IM2dp7t+X6n2qCV7hpdkkfLnbgfxH2NTS3EUFx5UefLTC7h044J98nmqStsFya3iaH/AFl0jLxjy1L9fritEyeauIlmBAUllI5I9Mg47VWtIldMbGjB6PIuF+nXNPlklkf9zcpGpwVaMFznHPJxgc/rUPVjQ46ZNJ80dzeIw6Etu/lj1/WqOvXF2WhtboDESZVgcl8/xE1LHZTllaPUZOACN25f157VV12W7mvg94iodoCbeV2+x796cfiE9jNooorYkKKKKACiiigDR0uUMslqSQZOVbPAwDkfj/SphI6koynHIIbIzxWSCVIKkgjoRUjXMrLhmz796lxux3NBbh5b+Ny7MkK7sdkYDg/nilTy4YwIokOc7nZdxH0/+tVe1l/0W8dxuJRU9zlgf/ZahW8kUkkKSenHSlYDVRC8oaVgu7AAY456dzSXF7DZL5SoWmAKlT/Aexyev+elZ66lOIZIyEO8YB2gbfpiqdJQ7hc0zrt9v3JIsYznCqCB+eaNZ1NdQFuqJgRLy2MbmOMnHYcVmUVXIr3sFwoooqhBRRRQAUUUUAFFFFAE8UoWynj5y7Jj8M1BRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/
I've already posted a few version of Base64 encoded files for:
Blitz Basic  https://socoder.net/?Snippet=33278 (https://socoder.net/?Snippet=33278)
SDL Basic  http://sdlbasic.epizy.com/showthread.php?tid=398 (http://sdlbasic.epizy.com/showthread.php?tid=398)
JustBasic (link no longer available as old forum was closed)

Currently working on the QB64 version. Would like to create in an InForm GUI eventually.
Title: Re: Compressed image as DATA in own source code
Post by: FellippeHeitor on December 22, 2019, 10:00:01 pm
Would like to create in an InForm GUI eventually.

That'll be cool! Let me know if I can be of assistance.
Title: Re: Compressed image as DATA in own source code
Post by: Petr on December 23, 2019, 03:46:21 am
Hi, yes, I'm going to try something like that. Because I will try this for the first time, it is certain that I will come to a dead end several times. I will now only try this thing during the Christmas holidays. Thank you for links, AndyA, now i try to do it compatible. It is very helpfully for me.
Title: Re: Compressed image as DATA in own source code
Post by: AndyA on December 23, 2019, 08:25:02 am
Hi Petr,

I will be posting QB64 code as soon as possible, probably this evening or tomorrow evening.

This will make it easier to add to your own programs, if desired.

But what this utility really needs is a GUI to allow end user to make output choices with a mouse click, instead of editing source code. Think InForm. Thanks Fellippe!
Title: Re: Compressed image as DATA in own source code
Post by: Petr on December 23, 2019, 01:47:22 pm
Hi AndyA,

I have studied BASE64 coding several times. It's basically a different compression than the one I used in the code above, but I've done my own BASE64 decoder (which only converts integer numbers up to 999999999 to BASE64 characters so far). I will also try to create BASE64 data compression itself, in parallel with you. It's an absolutely brilliant way I studied it that way. I like it very much.
Title: Re: Compressed image as DATA in own source code
Post by: Petr on December 24, 2019, 08:05:44 am
Hi AndyA, i do some experiments with this your link

Quote
Curly Fern IFS image: 100x75
Code: [Select]
data:image/jpeg;base64,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

in my program with this output: My program write jpg file correctly, jpg is visible using windows photo viewer, but QB64 can not load this image, because is uncompatible with _LOADIMAGE.

 


And as me reply, please try
Code: [Select]
data:image/jpeg;base64,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
Title: Re: Compressed image as DATA in own source code
Post by: AndyA on December 24, 2019, 06:37:55 pm
I get the same error that you do.

Here is the QB64 code I used to test:
Code: QB64: [Select]
  1. SCREEN _NEWIMAGE(400, 300, 32)
  2.  
  3. 'This is the image I saved from Chrome using the posted data:image URI
  4. imgName$ = "CurlyFern_100x75_fromDATA_URI.jpg"
  5.  
  6. imgHandle& = _LOADIMAGE(imgName$, 32)
  7. PRINT imgHandle& '<--- not loading???
  8. _SOURCE imgHandle&
  9.  

I also tested in BlitzPlus Basic and MS Paint, and it worked.
Code: Text: [Select]
  1. Graphics 400,300,32,2
  2. SetBuffer BackBuffer()
  3.  
  4. img% = LoadImage("CurlyFern_100x75_fromDATA_URI.jpg")
  5.  
  6. DrawImage img%,150,112
  7. Flip
  8. WaitMouse()
  9.  
  10. End

So I tend to think that it may be an incomplete .JPG (from data:image URI) that the QB64 JPG image loader has trouble with, and the others (MS Photo Viewer, MS Paint, BlitzPlus Basic) can decode.

The reason I say incomplete is because, from the image you posted, it looks very slightly cropped at bottom compared to the original .JPG I used to make the Base64 encoding. This may be due to the manual process I used to strip the word DATA and the double quotes in MS WordPad from the QB64 encoded image output.

I'll do more testing after Christmas to try and determine the issue.
Title: Re: Compressed image as DATA in own source code
Post by: Petr on December 25, 2019, 04:23:43 am
Just compare the size of the original file with the output size the image am sent here. And it is certainly enough after Christmas. And if the size is the same, it is a beautiful opportunity to try HEX editor from Eoredson :)