; Module/File: Gadget_QrGenerator.pb ; Function: Create a QrCode from a string and store it as png in tmp-folder (needs qrencode) - Linux ; Author: Omi ; Date: May. 16, 2015/2018 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.4x ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit UsePNGImageDecoder() Global.i gQRImage Global.s gMessage Procedure QRImage(Message.s) Protected.i PBImage, QrEncodeID Protected.i QrEncodeExists= RunProgram ("which", "qrencode", "", #PB_Program_Open | #PB_Program_Read) Protected.s PrgOutput If QrEncodeExists While ProgramRunning(QrEncodeExists) If AvailableProgramOutput(QrEncodeExists) PrgOutput+ ReadProgramString(QrEncodeExists) + #LF$ EndIf Wend If PrgOutput = "" MessageRequester("", "'qrencode' not found!" + #LF$ + "Use e.g. 'sudo apt-get install qrencode' to install.") ProcedureReturn 0 EndIf ;-s # = size of pixel (default=3) QrEncodeID= RunProgram ("qrencode", "-o tmp.png " + Message, GetTemporaryDirectory(), #PB_Program_Wait) If QrEncodeID PBImage= LoadImage(#PB_Any, GetTemporaryDirectory() + "tmp.png") Debug "stored as "+ GetTemporaryDirectory() + "tmp.png" EndIf Else MessageRequester("", "'qrencode' not found!" + #LF$ + "Use e.g. 'sudo apt-get install qrencode' to install.") EndIf ProcedureReturn PBImage EndProcedure ; Generate and show test image ... If OpenWindow(0, 0, 0, 410, 180, "QRCode example (Linux)", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) gMessage= "http://www.purebasic.fr/english/" gQRImage = QRImage(#DQUOTE$ + gMessage + #DQUOTE$) TextGadget(0, 5, 5, 300, 22, "Message: " + gMessage) If gQRImage ResizeImage(gQRImage, ImageWidth(gQRImage) << 0, ImageHeight(gQRImage) << 0, #PB_Image_Raw) ImageGadget(1, 10, 30, 108, 108, ImageID(gQRImage)) EndIf Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf ; IDE Options = PureBasic 5.46 LTS (Linux - x86) ; CursorPosition = 3 ; Folding = - ; EnableUnicode ; EnableXP