Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Old Paper - Put an old paper texture on the screen
#1
Here's a little SUB I made a while back and never shared.  Thought it may be useful.  It paints an old paper texture at given screen coordinates and you can specify the color of the paper.  It uses a very small grey paper image which is layered with a given color using the LINE statement.  The texture looks okay when filling both small and large screen areas.  I've found it handy for several kinds of programs.

This method is kind of outdated now that QB64PE can embed image files, and also has BASE64 built-in.  But for those who still like to stick things in code, here you go. 

- Dav

Code: (Select All)
'============
'OldPaper.bas
'============
'Coded by Dav for QB64PE.
'Small SUB loads nice old paper texture on screen.
'You can specify the size and color of the old paper.
'Use it for background, textured buttons, etc...

Screen _NewImage(_DesktopHeight, Int(_DesktopHeight * .75), 32)

Do
    x1 = Rnd * _Width + 1: x2 = x1 + Rnd * _Width + 1
    y1 = Rnd * _Height + 1: y2 = y1 + Rnd * _Height + 1
    OldPaper x1, y1, x2, y2, Rnd * 155, Rnd * 155, Rnd * 155
    _Limit 10
    _Display
Loop

Sub OldPaper (x1, y1, x2, y2, r, g, b)
    A$ = "" 'Loads old paper at given screen coordinates and r,g,b color.
    A$ = A$ + "2BgDTi)>A-YROXo*0F)G}<S=/|gF8-QlUIW8h<eoH?Z(C{Uh2<N7=9P*l4xZD1Iz+wa[9+d[WUS5"
    A$ = A$ + "S4YVM/n-Y}H.vE3J*uJ<.3{g6Fw;ON=Ia>upAodpP<*E'xO4pveHLNG7Mr1pa'jDl;hEn6'A:1d1"
    A$ = A$ + "D^Z1Gi5'o_4hd*kE<yIKI48yoF{AQ(G<B)ca6Zec}55M:=Wf{-IC*F=)L>iOmv+V]*fkp3YJHp]A"
    A$ = A$ + "YAxCtmB6Q7.[.R3SHa'|B=D=RCMC*sepm6uqIwSI\g7G?NzVS:YvH1Mzjk;}rz/<A4hpsXFOp(Aj"
    A$ = A$ + "MA>.S+R/r{>MQ|a\qPAuS1EHNHa=jBy0uHRZ}/g<n_8VqG?7,/{iTH]PIBO,l;7DUqex^>Z0Cm}|"
    A$ = A$ + "qw/N,J3v?e{Q*=b^C,:zjvqm3yE7.[2w8I45gz)d49oj.lOG0<>c*FV\i'+N>LInURt7pjxFZ=c_"
    A$ = A$ + "fFlZpxEo(=nfLW9?Yt[-kT_<opnp4Gy7QaN?F;)0zlPal;5<(AD?W*|)mf/e[*q'BdR]/|zaok8p"
    A$ = A$ + "|H.8j93(I4KSBx(Zle;00j]6J0IeM:u69cyC_7S78za+'4UVxY5VPz5SDVgCamR_fg)T.LRJ6iWd"
    A$ = A$ + "O}{yL2P'9*dH<bHCk^9,T*Ucxk9g^oi|o2_dv?4Ho4zfOtwHvF[zoS8??Rrsz.x8fN-AgC4e5?k]"
    A$ = A$ + "9+>=FJPmJn4qD+=BLNf0<YD)*D0,}an{Y\?z^t5+')-jH:Q^d6Ab(2|wX:u*mZoK=YKN]0jh/Zqr"
    A$ = A$ + ")*5N1yspVC^\1P5(4{7c^q+(OFQU'*rGyAp9f+w8]RU.MVoHr:g]3*Z53H5TJwJ39V5M/u_A|V-o"
    A$ = A$ + "<5tr=8H\HGA78|Xi(0[1]XV[7VOg'NJzUqRrvsbag;_-0SC+{3'{,A?z4Ju3pm-U/da\7Sxns(KX"
    A$ = A$ + "<6_;T+Hqoa0W::mL({l\Q[Noh)4u]>*D-Q-icS|fW'd)V[}+P?U?mM\wUw(fXz,^Nc[UC5C/{[sc"
    A$ = A$ + "<Z*x^THt3JLVDEj\z*]2Q2Hff>,}ao4MFeZ}d)oHc'bBZ>nmS>AzW=p:(O77v>q/\/Zjc^6vly'Y"
    A$ = A$ + "IZ,OQ9v*2CFUO4J/<'kG<,yVI\TvGS-9*)NR_Vnww^.}4h-xR4y}>g1[{--qMUBt0NTD9bD0;=BY"
    A$ = A$ + "7\=]Nu2Fl(E*nWB-/A<L\OJ<as(LEmGsjKDLTXT|gZOp;w<AVa(iKl6=Jo4[]R,*+TlxnRkmFJg1"
    A$ = A$ + "LRWp.E=5m4x{}nNa.'_IgMBr'\;JCMbVyN^qs4r>;4CsVTyTdrK+j3G\NA|QYQ0-?\D1oY8{+^ur"
    A$ = A$ + "<ED(aG<(<UBUt6H:vuJz\G4o**')u>-.k?BU:Ud8FKIx]6hBbXXwkxiC'?Sar3Mb92q5*4a0j.3*"
    A$ = A$ + "mH426R>:h9c.RL-P5jV,:[TIt/kRS<S1zS9D:4uxuS8^6i-0]NFp6.[Ba]6*.0a5X?1mppfdQb/b"
    A$ = A$ + "sDKGGf2nN>^+3u1tRewzB>.C_=pwZnU.1;z3zq-<CDP1^D3L9+OY]tZ0'a[F5=Rli\ZX|(tDT5NI"
    A$ = A$ + "9v?IO8G3(/s:LR9PUmaaD'awQ(SQ\cDDX8>nQ^r,Ls].hch>5P<m;L6<xgr_GMCo00l;m'C-Svju"
    A$ = A$ + "W=v?*x.go0mpC'\4?+bHXMZl9_waQFFDQ5,Nf/]tW2NVV,DEezvM6G-Y}emb+fd-H+DU^>H[Y-5t"
    A$ = A$ + ")G-o1LQQikUQecG_;IAQiKekW50cSfW0<c=S>1ao5*)jl<1aj5e6_Zxzs5c8*pEq5+Bw?7ZFrVS+"
    A$ = A$ + "]/msxF88=gnq=+/Ws/2Yi)oC,o1Z4hZ,:f7SF4,77{p85i,3UvZR:LpKj6Ga<Lz4EQ)H+>EB'cm7"
    A$ = A$ + "^VJ2O=9R[<]SjJQO7d*cH|DlCGLB].QKEje\+Vxg/,9O}qQ)k9kTy66>tk'V<)(j6gL+*?u?e1yw"
    A$ = A$ + "s7/PC_b_:<q?,G*oTUpnri0Er:/shCbLc>g:<qE5Kt)sGCF5vs{h+:v_Lz=3[vC5|GT0SHiCB-e?"
    A$ = A$ + "87RV]u-}2y*v++PB5UxnS__+=M?m^UPHO?H5\RTkUdVy|HGqz}WX.LxM371H1Jt)dt?Lf)KUP4W;"
    A$ = A$ + "s)2pKtwOQ\;)nNKFnjOjs;PWI6k}dE)lHGy,5fC::IZlZ+P<06NK)Xv}6V:664JR5KQ[10Y,v64-"
    A$ = A$ + "]BU/CAI.WEX<>0-n*_W}6u2:iYC.JooR?I;]n6)Ez}mpW?-|BCuxd.FVM[eGD0pG-2;\<OA<.g6?"
    A$ = A$ + "G|-^s?XD3IWZlTut)gQfOJKy1[sKQCv-6=qGNl<0if(1GeRP,jg^l-L:0XpcsoKpj{4Pz=Q;t_'O"
    A$ = A$ + "oAL(6ecm7Xp+O)C\o1HCTJL5*>[J\^:-j(P+r2?6b_XG9b+NdWEpmiXL;}T:.8d+smJj]HA<w+'x"
    A$ = A$ + "e<jH=LmC^GEX>3.j>00zX4a-T)f>Eu0mar2z]d1mi-1P><PV2=>H}SzH|p;Xio{=s\4BbK56AcDj"
    A$ = A$ + "SFQ^NoN3?FUSyN>V+M/-Hpz;POK}r[)S52x1Hcbl}wW\?bSuNqH)stce|ct??3x)6lV:PxIi(oyg"
    A$ = A$ + ";y|:5-<8yas+:kO*sZt9\7GNRQJ^<DnliFp0F*f6O5pk/q6{?5qaCX\YitScMdeDSK/Td/3hOC(k"
    A$ = A$ + "3POJ,N=mJSM(ppl/QD61AKC;3lJ_:8>bk'ELbdlr*18os(qg2ef6UAN;vZfB[n24{R?KlF7|YUE]"
    A$ = A$ + "*bsctXYS+UG<m3Ol2XDgPN81GTmN4uV2Dmfl_7kM9m<m+yG[JCdk77a:W7[Vm<^aPV'-EF_5ze?y"
    A$ = A$ + "PCF|>Dz7q0IVPU+6w)MmWk6:qPCH4lv=4x|FV3\:-YO-mxkmLSHUENFFF+<i2MA.[8)fFxr.4uVo"
    A$ = A$ + "5l6m?m]3.ul9)CvFxLBcTLaVT?Q.V:x}6p8UGeMDt4F75]'b41Zs2"
    For i = 39 To 125
        If i <> 64 And i <> 96 Then c$ = c$ + Chr$(i)
    Next: Dim v As _Unsigned Long
    a = Val(Mid$(A$, 1, 1))
    For i& = 2 To Len(A$) Step 5: v = 0
        For j& = 0 To 4: p& = 85 ^ (4 - j&)
            c& = InStr(c$, Mid$(A$, i& + j&, 1)) - 1
        v = v + c& * p&: Next: o$ = o$ + MKL$(v)
    Next: btemp$ = Mid$(o$, 1, Len(o$) - a + 1)
    BASFILE$ = _Inflate$(btemp$, 2328) 'uncompress image data
    tempwall& = _LoadImage(BASFILE$, 32, "memory") 'load image data from string memory
    _PutImage (x1, y1)-(x2, y2), tempwall& 'put image on screen at given cords
    Line (x1, y1)-(x2, y2), _RGBA(r, g, b, 55), BF 'layer given color over it
    _FreeImage tempwall&: A$ = "": BASFILE$ = "" 'clean up on aisle 4
End Sub

Find my programs here in Dav's QB64 Corner
Reply


Messages In This Thread
Old Paper - Put an old paper texture on the screen - by Dav - 11-25-2025, 02:41 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Yellow notebook paper background (scales to fit font setting) Dav 20 3,775 10-11-2023, 11:33 PM
Last Post: JRace

Forum Jump:


Users browsing this thread: