]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/image.cpp
Added wxToggleButton handler
[wxWidgets.git] / src / common / image.cpp
index 369bdf5fcdfacb267d31c8d3ac8ebad96ba23ac7..469260fb478d2a04fbd4a4ea3e2fcfd8fe488725 100644 (file)
@@ -935,6 +935,46 @@ bool wxImage::SetMaskFromImage(const wxImage& mask,
 
     return true;
 }
+    
+bool wxImage::ConvertAlphaToMask(unsigned char threshold)
+{
+    if (!HasAlpha())
+        return true;
+
+    unsigned char mr, mg, mb;
+    if (!FindFirstUnusedColour(&mr, &mg, &mb))
+    {
+        wxLogError( _("No unused colour in image being masked.") );
+        return false;
+    }
+
+    SetMask(true);
+    SetMaskColour(mr, mg, mb);
+
+    unsigned char *imgdata = GetData();
+    unsigned char *alphadata = GetAlpha();
+
+    int w = GetWidth();
+    int h = GetHeight();
+
+    for (int y = 0; y < h; y++)
+    {
+        for (int x = 0; x < w; x++, imgdata += 3, alphadata++)
+        {
+            if (*alphadata < threshold)
+            {
+                imgdata[0] = mr;
+                imgdata[1] = mg;
+                imgdata[2] = mb;
+            }
+        }
+    }
+
+    free(M_IMGDATA->m_alpha);
+    M_IMGDATA->m_alpha = NULL;
+
+    return true;
+}
 
 #if wxUSE_PALETTE