create program to create bitmap

Game development specific discussions.
Post Reply
dodicat
Posts: 7976
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: create program to create bitmap

Post by dodicat »

Here is a clipboard option to retrieve a forum text file.
(Windows)

Code: Select all

#include "windows.bi"
#include "win\Commdlg.bi"
#Include once "/win/commctrl.bi"
#Include "win/shellapi.bi"
freeconsole
Dim As hwnd Main=CreateWindowEx(0,"#32770","Picture finder",WS_OVERLAPPEDWINDOW Or WS_VISIBLE,0,0,800,300,0,0,0,0)
Dim As Any Ptr btn=CreateWindowEx( 0,"BUTTON","Open", ws_border Or WS_VISIBLE Or WS_CHILD ,150,50,100,30,Main,0,0,0)
Dim As Any Ptr fname  =createwindowex(0,"Static",""  , WS_VISIBLE Or WS_CHILD,0,150,800,30,Main,0,0,0)
Dim As Any Ptr btn2  =createwindowex(0,"BUTTON","Open Clipboard"  ,ws_border Or WS_VISIBLE Or WS_CHILD,280,50,120,30,Main,0,0,0)
Dim As hwnd tip 'tooltip
Declare Sub getfiles(As OpenFileName)
Declare Function CreateToolTip(As hwnd,As String="") As hwnd
Declare Function loadfile(file As String) As String
Declare Sub savefile(filename As String,p As String)
Declare Function compress(Byval num As String) As String
Declare Function uncompress(Byval num As String) As String
declare Function get_clipboard() As String

Dim BMPfile As OpenFileName
Dim As msg msg1

tip=CreateToolTip(btn,"Search for zipped pictures or imagefile.txt")
tip=CreateToolTip(btn2,"Get a text file from the clipboard")

freeconsole

setWindowText(fname,".zip or imagefile.txt") 

While GetMessage(@msg1,0,0,0)
    TranslateMessage(@msg1)
    DispatchMessage(@msg1)
    Select Case msg1.hwnd
    Case Main
        Select Case msg1.message
        Case 273  'close by clicking X
            End
        Case WM_RBUTTONDOWN
            Screen 0
        End Select
        '----------------------------- 
    case btn2 'clipboard option
      Select Case msg1.message  
      Case WM_LBUTTONDOWN
          var f=get_clipboard
          Screen 19
            Color 0,9
            Cls
            print
            print "Length of clipboard file ";len(f)
            print
            print "Directory in use "; curdir
            if len(f)>1000 then
            savefile("imagefile.txt",f)
            print "Clipboard saved as imagefile.txt"
            print
            print "You can use the open button to navigate to this file."
        else
            print "File seems too small for an image, so it has not been processed."
            end if
          end select
    Case btn
        Select Case msg1.message  
        Case WM_LBUTTONDOWN
            
            getfiles(BMPfile)
            Dim As String s=*BMPfile.lpstrFile
        
            Screen 19
            Color 0,7
            Cls
            Screencontrol 100,50,300
            Print
            If Right(s,3)<>"txt" Then
            Print "please wait"
            Print "File to modify ---> ";s
            Var s1 =loadfile(s)
            If Len(s1)=0 Then Print "no file chosen":Exit select
            Print "Length of Original file "; Len(s1)
           ' If Len(s1)>35000 Then Print "File too large at ";Len(s1);" characters, press a key and choose another ":Sleep:Cls::Exit Select
            Print "Building ..."
            Print "Compressing ..."
            Var c=compress(s1)
            savefile("imagefile.txt",c)
            
            
            Print "Length of compressed file"; Len(c);" <----- FORUM READABLE------>  (Imagefile.txt)"
            Print
            Print "Press a key to see the text file"
            Sleep
            Var cc=Curdir
            
            Print "Text file path is " + cc+"\image.txt"
            ShellExecute (0,"","notepad.exe ",cc+"\imagefile.txt","",SW_SHOWNORMAL) 
            End If
            'if a text file is chosen
            If  Right(s,3)="txt" Then
            Print "please wait ... (a text file has been chosen)"
            Var s1 =loadfile(s)
              Print "File to modify ---> ";s
            If Len(s1)=0 Then Print "no file chosen":Exit select
            Print "Length of text file "; Len(s1)   
            Var uc=uncompress(s1)
             Print "Length of image file "; Len(uc)
             savefile("imagefile"+".zip",uc)
             Print
             Print "imagefile"+".zip has been saved in the same folder"
             Print
             Print "You can close the program and unzip this file"
            End If 
            
        End Select
        '------------------------------ 
    End Select
    
Wend

Sub getfiles(Byref BMPfile As OpenFileName)
    Dim As zstring * 2048 SELFILE
    Dim As String MYFILTER
    MYFILTER = "image Files"+Chr(0)+"*.zip;imagefile.txt"+Chr(0)
    With BMPfile
        .lStructSize = Sizeof(OpenFileName)
        .hInstance = null 
        .lpstrFilter = Strptr(MYFILTER)
        .lpstrFile = @SELFILE 
        .nMaxFile = 2048
        .nMaxFileTitle = 0
        .lpstrTitle =@"Open"
    End With
    GetOpenFileName(@BMPfile)
End Sub

Function CreateToolTip(X As hwnd,msg As String="") As hwnd
    Dim As hwnd  TT= CreateWindowEx(0,"ToolTips_Class32","",64,0,0,0,0,X,0,GetModuleHandle(0),0)
                                                          '64=bubble,0 = rectangle
    SendMessage(TT, TTM_SETMAXTIPWIDTH, 0 , 180) 
    SendMessage(TT, TTM_SETDELAYTIME, TTDT_INITIAL ,40) 
    SendMessage(TT, TTM_SETDELAYTIME, TTDT_RESHOW  ,60)
    Dim bubble As TOOLINFO 
    bubble.cbSize = Len(TOOLINFO) 
    bubble.uFlags = TTF_IDISHWND Or TTF_SUBCLASS 
    bubble.uId = Cast(Uinteger,X) 
    bubble.lpszText = Strptr(msg)
    SendMessage(TT, TTM_ADDTOOL, 0,Cast(LPARAM,@bubble))
    Return TT
End Function

Function get_clipboard() As String
        If IsClipboardFormatAvailable(CF_TEXT) = 0 Then Return "Error"
        If OpenClipboard(0) = 0 Then Return "Error"
        Function = *Cast(zstring Ptr,GetClipboardData(CF_TEXT))
        CloseClipboard()
End Function

Function build(ByVal s As String) As String
    Dim As String acc
    For n As Long=0 To Len(s)-1
       acc+=Right("000" + Str(s[n]),3)
    Next
    Return acc
End Function

Function rebuild(ByVal s As String) As String
    Dim As String acc
    For n As Long=1 To Len(s) Step 3
        acc+=Chr(ValLng(Mid(s,n,3)))
    Next
    Return acc
End Function

Function loadfile(file As String) As String
    Var  f=Freefile
    Open file For Binary Access Read As #f
    Dim As String text
    If Lof(1) > 0 Then
        text = String(Lof(f), 0)
        Get #f, , text
    End If
    Close #f
    Return text
End Function

Sub savefile(filename As String,p As String)
    Dim As Integer n
    n=Freefile
    If Open (filename For Binary Access Write As #n)=0 Then
        Put #n,,p
        Close
    Else
        Print "Unable to load " + filename
    End If
End Sub

Function to128(ByVal i As ULong) As String
   Dim As String g
   Dim As ULong d,m,begin=32
   Do
    d=i\128
    m=i And 127
    g=chr((m)+begin)+g
    i=d
   loop until i=0  
   Return g
End Function

Function To10(ByVal Number As String) As ULong
            Dim As ULong sum,begin=32
            sum=(Asc(Left(Number,1))-begin)
            For n As Integer=2 To Len(Number)
                      Var z=(Number[n-1])
                       sum=(sum Shl 7)+ z-begin
            Next n
            Return sum
 End Function

Function compress(ByVal b256 As String) As String
   Var b=build(b256),d=String(4,Chr(32))
   Dim As String acc
   For n As Long=1 To Len(b) Step 9
      Var tmp=(Mid(b,n,9))
   acc+=   Right(d+ Str(to128(ValuLng(tmp))),4)
   Next
   Return acc
End Function

Function uncompress(ByVal b128 As String) As String
   Var d=String(9,"0")
   Dim As String acc
   For n As Long=1 To Len(b128) Step 4
      Var tmp=(Mid(b128,n,4))
   acc+=   (Right(d+ Str(to10(tmp)),9))
   Next
   Return rebuild(acc)
End Function

  
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Re: create program to create bitmap

Post by Cherry »

Excuse my ignorance, but what is the benefit of using such a complicated method compared to simply uploading an image file (preferrably PNG - lossless compression) somewhere and posting it, or in case it's about the understandable fear of hosters going down and links becoming dead, posting a base64 representation of the PNG, maybe even as data URL so all one has to do is copying it into the address bar in order to get a viewable and saveable image?

I see this thread having 20 pages and I read through half of them but I didn't understand why all these tricks are even needed in the first place in order to share images in the forum...
MrSwiss
Posts: 3910
Joined: Jun 02, 2013 9:27
Location: Switzerland

Re: create program to create bitmap

Post by MrSwiss »

A short explanation to your questions, can be found, here ...
As well as a continued discussion of various technicalities ...
And, the most current Utility: ver. 0.51.
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: create program to create bitmap

Post by leopardpm »

Cherry wrote:or in case it's about the understandable fear of hosters going down and links becoming dead, posting a base64 representation of the PNG, maybe even as data URL so all one has to do is copying it into the address bar in order to get a viewable and saveable image?
what is a 'data url'?
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Re: create program to create bitmap

Post by Cherry »

https://en.wikipedia.org/wiki/Data_URI_scheme

Code: Select all

data:image/jpeg;base64,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
Paste this into your browser's address bar to see what I mean! It's an URL which actually contains the image instead of linking to it.
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: create program to create bitmap

Post by leopardpm »

what the...?! That is amazing!

So... how is the data created? I am not understanding the 'creation' process for the data url

also, what is the # of characters limit of the data URL?
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Re: create program to create bitmap

Post by Cherry »

Actually, if the board's filter would allow things starting with "data:" to be treated as link or image source, it would be even nicer.

Using base64, it is "data:" + mimetype + ";base64," + base64-encoded contents of the file. (There is also a "raw" way.)

There are tons of generators online, e.g. https://dopiaza.org/tools/datauri/index.php

There is no character limit in theory, but the forum has a limit of 60000 characters per post as far as I know.

EDIT: I think a compromise could even be creating a small external service which takes a data URL (maybe without the "data:" part to prevent confusing the forum software) as part of its path and returns its contents as body or even just does a 302 redirect to the given data URL, for example "http://something.com/image/jpeg;base64,asdcuas......". Then, such a URL can be used to provide links to download, show the images inline in the forum, etc., but the data is still here, and if one day this service would no longer exist, it is still possible to get the data by just right-clicking the link/image, copying the URL, replacing "http://something.com" with "data:" and using the manual method of copying and pasting instead again...

EDIT2: However, the data is of course not as compressed this way as with the ForumBlobPost tool which MrSwiss mentioned above. But it would be relevant only for files larger than around 40KB.
Last edited by Cherry on Jun 30, 2017 16:27, edited 1 time in total.
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: create program to create bitmap

Post by leopardpm »

very nifty! Thank you... I think this is a great option... it would be good if Mr. Swiss's utility could also decrypt the url with the added header info, just to make it easy if someone like using his utility instead.

I really like being able to view the image without downloading it, and while viewing it one can right-click and save the actual image file instead of using the decoder or a text file (or any of the other conniptions we have tried...)
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Re: create program to create bitmap

Post by Cherry »

An example of what I imagined:

Link:
Click me

Inline image:
Image

To use it as data URL (in case the service is down for example), you would just need to remove the "http://dataurl.app.dotlabs.co/" in front of the URL.

(This whole trick is only necessary because the forum thinks that something starting with "data:" can't be an URL and refuses to show it as image for example, even though your browser would be fine with that.)

Note that I made this service as a quick proof of concept, it is NOT meant to be used in production and I may close it again any time! (But it wouldn't be a lot of effort to make it a long-term service.)
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: create program to create bitmap

Post by leopardpm »

Cherry wrote:
Cherry wrote:An example of what I imagined.....

Note that I made this service as a quick proof of concept, it is NOT meant to be used in production and I may close it again any time! (But it wouldn't be a lot of effort to make it a long-term service.)
so, you are 'hosting' this image/data?

"http://dataurl.app.dotlabs.co/"
MrSwiss
Posts: 3910
Joined: Jun 02, 2013 9:27
Location: Switzerland

Re: create program to create bitmap

Post by MrSwiss »

@leopardpm,
leopardpm wrote:very nifty! Thank you... I think this is a great option... it would be good if Mr. Swiss's utility could also decrypt the url with the added header info, just to make it easy if someone like using his utility instead.
Before going all "over board", have you read the last paragraph on Wikipedia, about security?

Secondly:
it would require, to use the "Standard compliant" Alphabet (less speed, less security).
It is only an added layer of security, by NOT using the Standard, which is common
knowledge to all, by now (even and/or especially, the "badies" know it!).

Thirdly:
no more .zip file support ... (images only)
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Re: create program to create bitmap

Post by Cherry »

@leopardpm: No I'm not hosting it, the forum is hosting it. It is just sent to this service and returned as regular HTTP response body in order to work around the forum issue I mentioned, whenever the browser displays it.

(It is true that I or whoever runs such a service could therefore know everything which is encoded that way, that's the downside, but for a public forum with no existing private messaging system it wouldn't matter.)

@MrSwiss:

Just to make that clear: I'm not against your software and I don't want to force my ideas on anybody. I'm just pointing out solutions which I felt that nobody had considered in this thread before and their plus and minus. I have no interest in what you actually use at the end of the day. But:

1) Wikipedia security: Of course it can be used for bad purposes too, like every technology. Did you know most of the bad things on the internet are transfered via HTTP? But we shouldn't stop using HTTP because of that, should we? ;)

2) Wait a second, first of all I though the point was to allow sharing small files on the forum without externally hosting them, and it would even be a benefit to see images without pasting them into another tool...? If we were talking about some kind of "encryption", then something is wrong here anyway because your statement sounds like security through obscurity which is no security at all. If you want to hide the data, encrypt (not encode!) it, but then there is no use in putting it on a forum anyway. (I don't know what "badies" you are refering to in this context.) It's of course true that the standard alphabet has less storage density, but I mentioned that before, and for <40KB files it is still fine. (And, seriously, you are talking about speed for files which have to fit into a 60k characters limit, in 2017? The fact that you can use the browser instead of an external tool should make that argument baseless anyway because this will always be faster than using some external application to save a file...)

3) Why do you think ZIP or other files wouldn't work? Here, try this one:

Code: Select all

data:application/x-zip-compressed;base64,UEsDBAoAAAAAAEij3kqe2EKwBwAAAAcAAAAJAAAAaGVsbG8udHh0SGVsbG8hClBLAQI/AAoAAAAAAEij3kqe2EKwBwAAAAcAAAAJACQAAAAAAAAAIAAAAAAAAABoZWxsby50eHQKACAAAAAAAAEAGAC+qAhbzvHSAZ29B1vO8dIBnb0HW87x0gFQSwUGAAAAAAEAAQBbAAAALgAAAAAA
I think leopardpm's idea of an interoperability between these different ways would be cool, though.
MrSwiss
Posts: 3910
Joined: Jun 02, 2013 9:27
Location: Switzerland

Re: create program to create bitmap

Post by MrSwiss »

@Cherry,
Cherry wrote:allow sharing small files on the forum without externally hosting them, and for <40KB files
slight error there, the idea initially was: to make the most/best, possible use of the 60'000 allowed
char's the forum provides ... (aka: largest possible file size).

A bit of obscurity, doesn't do any harm ... (it comes at a price of: 0.00)
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: create program to create bitmap

Post by leopardpm »

Cherry wrote:3) Why do you think ZIP or other files wouldn't work? Here, try this one:

Code: Select all

data:application/x-zip-compressed;base64,UEsDBAoAAAAAAEij3kqe2EKwBwAAAAcAAAAJAAAAaGVsbG8udHh0SGVsbG8hClBLAQI/AAoAAAAAAEij3kqe2EKwBwAAAAcAAAAJACQAAAAAAAAAIAAAAAAAAABoZWxsby50eHQKACAAAAAAAAEAGAC+qAhbzvHSAZ29B1vO8dIBnb0HW87x0gFQSwUGAAAAAAEAAQBbAAAALgAAAAAA
VERY COOL!
I think leopardpm's idea of an interoperability between these different ways would be cool, though.
yes... though it seems your way is MUCH easier all the way around...

I don't understand the issue you are having with 'security', Mr. Swiss - this is a public forum... what exactly will we be transferring that needs some sort of secure encryption? I imagine we could actually transfer encrypted files by encrypting them then ZIPping them and doing it his way.... but its useless because we are making public the entire method anyways..
Mr. Swiss wrote:slight error there, the idea initially was: to make the most/best, possible use of the 60'000 allowed
char's the forum provides ... (aka: largest possible file size).
yes, and his method is just as effective as ours, right?
Cherry
Posts: 358
Joined: Oct 23, 2007 12:06
Location: Austria
Contact:

Re: create program to create bitmap

Post by Cherry »

@leopardpm: No, it's true that base64 by definition reduces the efficency because it requires more storage than unencoded data by a factor of 133%, i.e. a 3000 bytes file would need 4000 characters to encode (plus a few "header" bytes).

@MrSwiss:

If I read how this thread started, I believe it was about sharing images. I understood by now that it's an important point to do so without an external file upload service and I see the benefits of that.

For using every last bit of a post: If this becomes necessary for something (e.g. text plus image(s) are too large), more complicated alternatives can be worth the effort (and the convenience cost), yes, but I assume that this will be the exception to the rule in case of everyday posts where somebody just wants to add an image or two, or some other small file.

And I believe the obscurity does harm, because it causes extra effort for the viewers, and complexity to understand what is required to see the content, plus possible dependency on certain operating systems for which you provided binaries of your tool (otherwise the need to compile from source, only to view an image! or maybe there isn't even a way to compile it at all, e.g. on a laptop with Chromium OS), higher risk of corruption due to a bad forum update (I remember something like this happened to code tags before) exactly because of not just staying with a standard alphanumeric charset, etc. It also means I can't easily see an image on my phone, for example. In general it is yet another conflicting standard and I think we already have enough of these in IT industry. I don't understand what benefit you see in making it harder for people to see the things you wanted them to see (otherwise you wouldn't post them).
Post Reply