March 01, 2021, 10:56:32 PM

Author Topic: [bb] Blur Image by Richard Betson [ 1+ years ago ]  (Read 419 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] Blur Image by Richard Betson [ 1+ years ago ]
« on: June 29, 2017, 12:28:41 AM »
Title : Blur Image
Author : Richard Betson
Posted : 1+ years ago

Description : This will blur an image. Note the "And $ffffff" afer readpixelfast's. This is for Blitz 3D and I think 2D now, any you may need to remove them on some Blitz 2D versions. Enjoy!

Code :
Code: BlitzBasic
  1. ;**************************************************************************
  2. ;                                                       Blur Demo 1.a
  3. ;                                                         RedEyeWare
  4. ;                                          www.redeyeware.50megs.com
  5. ;                                        Copyright 2002, Richard Betson
  6. ;                                               Email: vidiot@getgoin.net
  7. ;
  8. ; This code is free for all to use!
  9. ; This code is supplied "as-is"  use at your own risk!
  10. ;
  11. ;
  12. ;**************************************************************************
  13.  
  14. Const sw=640
  15. Const sh=480
  16.  
  17. Graphics sw,sh,16
  18.  
  19. ;===========================================================================
  20. ;                               Variables.......
  21. ;===========================================================================
  22. Dim pal(9)
  23. Global blur=.001
  24. Global fade=0
  25. Const  reps=0
  26.  
  27. ;=============================================================
  28. ;              Load Image and get size)
  29. ;=============================================================
  30. logo=LoadImage("YourFile.bmp")
  31. iw=ImageWidth(logo)
  32. ih=ImageHeight(logo)
  33.  
  34.  
  35. SetBuffer FrontBuffer()
  36.  
  37. ;==========================================
  38. ;         Draw my logo on the screen :)
  39. ;==========================================
  40. For i= 0 To (sh/ih)
  41.  
  42.         For ii=0 To (sw/iw)
  43.                 DrawImage logo,x,y
  44.                 x=x+iw
  45.                 If x>=sw Then x=0
  46.         Next
  47.         y=y+ih
  48.        
  49. Next
  50.  
  51. ;==========================================
  52. ;        Setfont
  53. ;==========================================
  54. fntArialB=LoadFont("Arial",24,True,False,False)
  55. SetFont fntArialB
  56.  
  57. Color 255,255,255
  58. Text (sw/2),(sh/2),"Blur and Fade using Wirtepixelfast",True,True
  59. Text (sw/2),(sh/2)+20,"and Readpixelfast..",True,True
  60. Color 0,0,255
  61. a$=Input$("Press 1. for standard blur/fade. Press 2. or 3. for a diffrent kind :)")
  62.  
  63. ;================================================================
  64. ;                        MAIN LOOP
  65. ;              Lock buffer, draw, unlock buffer
  66. ;================================================================
  67.  
  68. For i=0 To reps
  69.  
  70.         LockBuffer FrontBuffer()
  71.  
  72.                 If a$="1"
  73.                 update_screen_1()
  74.                                 EndIf
  75.  
  76.                 If a$="2"
  77.                 fade=1
  78.                 update_screen_1()
  79.                 EndIf
  80.  
  81.                 If a$="3"
  82.                 update_screen_2()
  83.                 update_screen_1()
  84.                 EndIf
  85.  
  86.         UnlockBuffer FrontBuffer()
  87.        
  88.  
  89. Next
  90.  
  91. Delay 4000
  92.  
  93. Function update_screen_1()
  94.  
  95. For y=1 To sh
  96. ;--------------------------------------------------------------
  97. ;Read pixel above,below,left, right of the current x,y position
  98. ;--------------------------------------------------------------
  99.         For x=1 To sw
  100.                 pal(1)=ReadPixelFast (x,y)And $FFFFFF
  101.                 pal(2)=ReadPixelFast (x+1,y)And $FFFFFF
  102.                 pal(3)=ReadPixelFast (x-1,y)And $FFFFFF
  103.                 pal(4)=ReadPixelFast (x,y+1)And $FFFFFF
  104.                 pal(5)=ReadPixelFast (x,y-1)And $FFFFFF
  105. ;--------------------------------------------------------------
  106. ;Average the above by adding and then dividing.
  107. ;Then write to screen. Fade offsets the pixel that is written.
  108. ;--------------------------------------------------------------
  109.                 pal2=((pal(1)*blur)+pal(2)+pal(3)+pal(4)+pal(5))/(4+blur)
  110.                
  111.  
  112.                         If pal2<=0 Then pal2=0
  113.                 WritePixelFast x,y+fade,pal2
  114.         Next
  115. Next
  116.  
  117. End Function
  118.  
  119.  
  120. Function update_screen_2()
  121.  
  122. For y=1 To sh
  123. ;--------------------------------------------------------------
  124. ;Read pixel above,below,left, right of the current x,y position
  125. ;--------------------------------------------------------------
  126.         For x=1 To sw
  127.                 pal(1)=ReadPixelFast (x,y)And $FFFFFF
  128.                 pal(2)=ReadPixelFast (x+1,y)And $FFFFFF
  129.                 pal(3)=ReadPixelFast (x-1,y)And $FFFFFF
  130.                 pal(4)=ReadPixelFast (x,y+1)And $FFFFFF
  131.                 pal(5)=ReadPixelFast (x,y-1)And $FFFFFF
  132.                 pal(6)=ReadPixelFast (x+1,y-1)And $FFFFFF
  133.                 pal(7)=ReadPixelFast (x-1,y+1)And $FFFFFF
  134.                 pal(8)=ReadPixelFast (x+1,y+1)And $FFFFFF
  135.                 pal(9)=ReadPixelFast (x-1,y-1)And $FFFFFF
  136. ;--------------------------------------------------------------
  137. ;Average the above by adding and then dividing.
  138. ;Then write to screen. Fade offsets the pixel that is written.
  139. ;--------------------------------------------------------------
  140.                 pal2=((pal(1)*blur)+(pal(2)+pal(3)+pal(4)+pal(5)+pal(6)+pal(7)+pal(8)+pal(9)))/(8+blur)
  141.        
  142.                         If pal2<=0 Then pal2=0
  143.                 WritePixelFast x,y,pal2
  144.                
  145.         Next
  146. Next
  147.  
  148. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal