External/Aga.Controls/BitmapHelper.cs
author moel.mich
Mon, 02 Jul 2012 21:14:40 +0000
changeset 357 fb8dc26f65a4
permissions -rw-r--r--
Added mainboard specific configurations for the following Gigabyte mainboards: EX58-UD3R, G41M-Combo, G41MT-S2, G41MT-S2P, GA-MA770T-UD3P, GA-MA785GM-US2H, GA-MA78LM-S2H, GA-MA790X-UD3P, H55-USB3, H55N-USB3, H61M-DS2 REV 1.2, H61M-USB3-B3 REV 2.0, H67A-USB3-B3, P55A-UD3, P67A-UD3-B3, P67A-UD3R-B3, Z68A-D3H-B3, Z68AP-D3, Z68X-UD3H-B3.
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Text;
     4 using System.Drawing;
     5 using System.Runtime.InteropServices;
     6 using System.Drawing.Imaging;
     7 
     8 namespace Aga.Controls
     9 {
    10 	public static class BitmapHelper
    11 	{
    12 		[StructLayout(LayoutKind.Sequential)]
    13 		private struct PixelData
    14 		{
    15 			public byte B;
    16 			public byte G;
    17 			public byte R;
    18 			public byte A;
    19 		}
    20 
    21 		public static void SetAlphaChanelValue(Bitmap image, byte value)
    22 		{
    23 			if (image == null)
    24 				throw new ArgumentNullException("image");
    25 			if (image.PixelFormat != PixelFormat.Format32bppArgb)
    26 				throw new ArgumentException("Wrong PixelFormat");
    27 
    28 			BitmapData bitmapData = image.LockBits(new Rectangle(0, 0, image.Width, image.Height),
    29 									 ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
    30 			unsafe
    31 			{
    32 				PixelData* pPixel = (PixelData*)bitmapData.Scan0;
    33 				for (int i = 0; i < bitmapData.Height; i++)
    34 				{
    35 					for (int j = 0; j < bitmapData.Width; j++)
    36 					{
    37 						pPixel->A = value;
    38 						pPixel++;
    39 					}
    40 					pPixel += bitmapData.Stride - (bitmapData.Width * 4);
    41 				}
    42 			}
    43 			image.UnlockBits(bitmapData);
    44 		}
    45 	}
    46 }