Плагин для Irfanview.
Формально просто конвертит scr в bmp, Flash не учитывыется. (код для PureBasic)


PHP код:
scr to bmp plugin 4 irfanview

Global Dim color.l(15)
Global 
Dim cl.l(1)
Global 
hDIB.l
Global hl.l
Global Header.54
Global *buf_from




ProcedureDLL
.l scr2dib(file_name$)

color(0)  =   |   << 4   << 16 255 << 24
color
(1)  = 180 |   << 4   << 16 255 << 24
color
(2)  =   |   << 180 << 16 255 << 24
color
(3)  = 180 |   << 180 << 16 255 << 24
color
(4)  =   178 << 4   << 16 255 << 24
color
(5)  = 180 178 << 4   << 16 255 << 24
color
(6)  =   178 << 180 << 16 255 << 24
color
(7)  = 180 178 << 180 << 16 255 << 24

color
(8)  =   |   << 4   << 16 255 << 24
color
(9)  = 252 |   << 4   << 16 255 << 24
color
(10) =   |   << 252 << 16 255 << 24
color
(11) = 252 |   << 252 << 16 255 << 24
color
(12) =   254 << 4   << 16 255 << 24
color
(13) = 252 254 << 4   << 16 255 << 24
color
(14) =   254 << 252 << 16 255 << 24
color
(15) = 252 254 << 252 << 16 255 << 24

*buf_from AllocateMemory(6912)

ReadFile(0file_name$)
ReadData(0, *buf_from6912)
CloseFile(0)

hDIB=GlobalAlloc_(#GHND,256*192*4+ Header) 
  
If hDIB=0ProcedureReturn #False: EndIf 
  
  
*buf_to_1 GlobalLock_(hDIB

  
PokeS(*buf_to_1 0"BM")
PokeL(*buf_to_1 2256*192*4+54)
PokeW(*buf_to_1 60)
PokeW(*buf_to_1 80)
PokeL(*buf_to_1 1054)
PokeL(*buf_to_1 1440)
PokeL(*buf_to_1 18256)
PokeL(*buf_to_1 22, -192)
PokeW(*buf_to_1 261)
PokeW(*buf_to_1 2832)




For 
line.0 To 191
  
For byte.0 To 31
  
    c
.PeekB(*buf_from 6144 + ((line >> 3) << 5) + byte)
    
cl(0) = color((& %111) | ((& %01000000) >> 3))
    
cl(1) = color(((& %111000) >> 3) | ((& %01000000) >> 3))
    
flash.= (& %10000000) >> 7
    
    b
.1
    
For bit.7 To 0 Step -1
    
      
If PeekB(*buf_from hl byte) & bn=0: Else: n=1: EndIf
       
      
PokeL(*buf_to_1 Header + (line 1024) + (byte*bit)*4cl(n))
     
    
<< 1
    Next bit 
  Next byte
  


  l
.hl & %11111111 
  h
.hl >> 8
  
  h 
1
  
If & %111 <> 0: Goto end_hl: EndIf
  
  
32
  
If 255& %11111111: Goto end_hl: EndIf
  
& %11111111
  
  h 
8    

end_hl


  
hl | (<< 8)
  
Next line  

FreeMemory
(*buf_from)

GlobalUnlock_(hDIB)

ProcedureReturn hDIB
EndProcedure