December 04, 2020, 11:44:43 AM

Author Topic: [bmx] wxmax generate wxicon by Warner [ 1+ years ago ]  (Read 542 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bmx] wxmax generate wxicon by Warner [ 1+ years ago ]
« on: June 29, 2017, 12:28:41 AM »
Title : wxmax generate wxicon
Author : Warner
Posted : 1+ years ago

Description : Seems 192,192,192 is used as the transparent color for wxicons.

Code :
Code: BlitzMax
  1. Function MatteIcon:wxIcon(r:Int, g:Int, b:Int)
  2.  
  3.         Local imagePtr:Byte Ptr = bmx_wximage_createempty(16, 16)              
  4.         bmx_wximage_setrgbrange(imagePtr, 0, 0, 16, 16, r, g, b)
  5.         Local bitmapPtr:Byte Ptr = bmx_wxbitmap_createfromimage(imagePtr, -1)
  6.                
  7.         Local icon:wxIcon = New wxIcon.Create()
  8.         bmx_wxicon_copyfrombitmap(icon.wxObjectPtr, bitmapPtr)
  9.                                                
  10.         bmx_wximage_delete(imagePtr)
  11.         bmx_wxbitmap_delete(bitmapPtr)
  12.        
  13.         Return icon
  14.        
  15. End Function
  16.  
  17. 'create icon from image
  18. Function PixmapToIcon:wxIcon(pm:TPixmap)
  19.                                
  20.         Local imagePtr:Byte Ptr = bmx_wximage_createempty(16, 16)              
  21.                        
  22.         Local x:Int, y:Int
  23.         For x = 0 To 15
  24.         For y = 0 To 15
  25.                 Local col:Int = pm.ReadPixel(x * pm.width / 16, y * pm.height / 16)
  26.                 Local b:Int = col & 255
  27.                 Local g:Int = (col shr 8) & 255
  28.                 Local r:Int = (col shr 16) & 255
  29.                 bmx_wximage_setrgb(imagePtr, x, y, r, g, b)
  30.         Next
  31.         Next   
  32.                
  33.         Local bitmapPtr:Byte Ptr = bmx_wxbitmap_createfromimage(imagePtr, -1)
  34.                
  35.         Local icon:wxIcon = New wxIcon.Create()
  36.         bmx_wxicon_copyfrombitmap(icon.wxObjectPtr, bitmapPtr)
  37.                                                
  38.         bmx_wximage_delete(imagePtr)
  39.         bmx_wxbitmap_delete(bitmapPtr)
  40.        
  41.         Return icon
  42.                
  43. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal