Realtime image processing
Blitz3D Forums/Blitz3D Userlibs/Realtime image processing
| ||
| Hi, I make some functions and dll for realtime image processing. More than 50 effects. Based on Image Styles ( Paurex www.paurex.com ) and ISL.DLL. Run with or without ISF's scripts Features of ISL Scripts : - Very small Image Styles script file size (*.isf). - The most complex files occupy about 500 bytes. - Now possible to use textures and images with big sizes! - Fast image generation. - New method of image generation allows increase the render speed. - About 60 different effects. - All effects make wonderful results. - Seamless and standart image generation algorithms. - You may create textures and images in one time. - Enormous amount of image variants. The library contains an unique technology of random image generation Download here http://www.zinfo972.net/avatar/blitz_isl.zip exemples : Sorry. Poor english. I'm a french people. @+ |
| ||
| This is awesome! Fantastic! Excellent! |
| ||
| Really, really nice... |
| ||
| Yeah, excellent stuff. |
| ||
| from the paurex website: You may freely use ISL in your freeware games/demos/etc. sadly it's not free. |
| ||
| I haven't tested this yet, but is it fast enough for processing frames being rendered? In other words, for applying image effects to 3D rendering in real-time? |
| ||
| Looks good ! |
| ||
| Cool stuff! Thanks. |
| ||
| Hi, Thanks @+ |
| ||
| Great job... This is very nice indeed. thanks. |
| ||
| >jhocking, yes for realtime. See Isl_demo3.BB . Do not forget this : direct acces to Blitz's buffers with this DLL. But I have find a problem with function ISL_ExecuteScriptOnImage (a memory release pb). Identical in c++ and VB. I'm sending a mail to Paurex Support. Wait and See. So, the isl_demo2.bb is very significant. It proves that ALL scripts of Image Styles are usable under Blitz @+ I think with the direct acces to the buffers , Blitz's gurus will find a solution for ISL_ExecuteScriptOnImage ;) |
| ||
| Hi, Answer of Paurex's Support " Thank you. We have fixed this bug in ISL v2.5.". Awesome, they are really fast. ;) @+ |
| ||
| I get an error: "Function 'Blzpeekint' not found"....why? |
| ||
| Thanks |
| ||
| elseano > Do not forget,put the .Decls and .DLL files in the Blitz's userlib directory. @+ Which is your Blitz's version ? |
| ||
| Hi, New version of ISL.DLL (2.5) .www.paurex.com. The ISL_ExecuteScriptOnImage function works well. No memory release pb. Update of isl here http://www.paurex.com/?products&prod=isl @+ |
| ||
| Hi, I'm suprised. Works well with another pictures size. Not only with 256*256. JP
; Blitz3D ISL DEMO 1
;+++++++++++++++++++++++++++++++++++++++++++
; No optimized. I'm not a Blitz Guru. ;)
;+++++++++++++++++++++++++++++++++++++++++++
Graphics3D 800,600,32,0
; Include after graphics mode
;+++++++++++++++++++++++++++
Include "ISL_INC.BB"
;+++++++++++++++++++++++++++
ISL_Initialize() ; init the library
;+++++++++++++++++++++++++++
Global image = LoadImage("f_oeil5.jpg") ; 800x600
Global save = CopyImage(image)
Global buffer_image = ImageBuffer(image)
Global buffer_save = ImageBuffer(save)
WritePixel 0,0,0,buffer_image ;init the image buffer !?!
WritePixel 0,0,0,buffer_save ;init the save buffer !?!
; Peeks Functions works well with Blitz 1.86 version. <<<<<<< BE CAREFUL <<<<<<<<<<<<<<<<<<<
width = BLZPeekInt(buffer_image+92); buffer_image+28 for Blitz+ not tested !!
height = BLZPeekInt(buffer_image+96); buffer_image+32
adrvideo = BLZPeekInt(buffer_image+72); buffer_image+76
SetBuffer FrontBuffer()
effect$="SINE_DISTORTION"
ISL_LoadScriptFromMemory(adr_SINE_DISTORTION) ; Load the filter BUMP whit this address data
Gosub on_screen ; Need Gosub. why ? Blitz's guru response?. No Function here !!!!
effect$="FRACTAL_PLASMA"
ISL_LoadScriptFromMemory(adr_FRACTAL_PLASMA) ; another script
Gosub on_screen
effect$="PINCH"
ISL_LoadScriptFromMemory(adr_PINCH) ; here too
Gosub on_screen
effect$="INVERSION"
ISL_LoadScriptFromMemory(adr_INVERSION) ; etc.. etc..
Gosub on_screen
effect$="BORDER"
ISL_LoadScriptFromMemory(adr_BORDER) ; etc.. etc..
Gosub on_screen
effect$="GRADIENT_MAP"
ISL_LoadScriptFromMemory(adr_GRADIENT_MAP) ; etc.. etc..
Gosub on_screen
effect$="COLORIZE"
ISL_LoadScriptFromMemory(adr_COLORIZE) ; etc.. etc..
Gosub on_screen
effect$="THRESHOLD"
ISL_LoadScriptFromMemory(adr_THRESHOLD) ; etc.. etc..
Gosub on_screen
effect$="NOISE"
ISL_LoadScriptFromMemory(adr_NOISE) ; etc.. etc..
Gosub on_screen
effect$="PLASMA"
ISL_LoadScriptFromMemory(adr_PLASMA) ; etc.. etc..
Gosub on_screen
effect$="MOTION_BLUR"
ISL_LoadScriptFromMemory(adr_MOTION_BLUR) ; etc.. etc..
Gosub on_screen
effect$="ROTATE" ; my rotate default value is set to 45. for modif ISL_SetEffectValue%(0,4,rnd(-360,360))
ISL_LoadScriptFromMemory(adr_ROTATE) ; etc.. etc..
Gosub on_screen
effect$="CIRCLES"
ISL_LoadScriptFromMemory(adr_CIRCLES) ; etc..
Gosub on_screen
; modification of one parameter
CopyRect 0,0,800,600,0,0,buffer_save,buffer_image
ISL_SetEffectValue%(0,6,15) ; filter 0 (always), param 6 (Maximun Radius)
ISL_ExecuteScriptOnImage(adrvideo,width,height)
DrawBlock image, 0,0
Text 300,290,"Filter "+effect$+" AND RADIUS MODIFICATION"
WaitKey
ISL_Finish() ; Close the library
End
.on_screen
Cls
; Backup the original .Without this line 'mixing' effects... Good, very good
CopyRect 0,0,800,600,0,0,buffer_save,buffer_image
; call the filter with the adr of the buffer bmp, this width and this height
ISL_ExecuteScriptOnImage(adrvideo,width,height) ; Run the script. (the filter. because only ONE filter by script)
Color 255,0,0
DrawBlock image,0,0
Text 5,5,"Filter "+effect$
Text 5,20,"Press a key"
WaitKey
Return
Last edited 2012 |
| ||
| well this is ähm -!cool!- |
| ||
| fantastique! |
| ||
| Anyone got this to work with Blitz+? |
| ||
| Try with these parameter. Not tested. No Blitz+'s license width = BLZPeekInt(buffer_image+28) height = BLZPeekInt(buffer_image+32) adrvideo = BLZPeekInt(buffer_image+76) |
| ||
| Thanks ZJP, I did try those offsets, but no luck. |