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.
moel@345
     1
using System;
moel@345
     2
using System.Collections.Generic;
moel@345
     3
using System.Text;
moel@345
     4
using System.Drawing;
moel@345
     5
using System.Runtime.InteropServices;
moel@345
     6
using System.Drawing.Imaging;
moel@345
     7
moel@345
     8
namespace Aga.Controls
moel@345
     9
{
moel@345
    10
	public static class BitmapHelper
moel@345
    11
	{
moel@345
    12
		[StructLayout(LayoutKind.Sequential)]
moel@345
    13
		private struct PixelData
moel@345
    14
		{
moel@345
    15
			public byte B;
moel@345
    16
			public byte G;
moel@345
    17
			public byte R;
moel@345
    18
			public byte A;
moel@345
    19
		}
moel@345
    20
moel@345
    21
		public static void SetAlphaChanelValue(Bitmap image, byte value)
moel@345
    22
		{
moel@345
    23
			if (image == null)
moel@345
    24
				throw new ArgumentNullException("image");
moel@345
    25
			if (image.PixelFormat != PixelFormat.Format32bppArgb)
moel@345
    26
				throw new ArgumentException("Wrong PixelFormat");
moel@345
    27
moel@345
    28
			BitmapData bitmapData = image.LockBits(new Rectangle(0, 0, image.Width, image.Height),
moel@345
    29
									 ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
moel@345
    30
			unsafe
moel@345
    31
			{
moel@345
    32
				PixelData* pPixel = (PixelData*)bitmapData.Scan0;
moel@345
    33
				for (int i = 0; i < bitmapData.Height; i++)
moel@345
    34
				{
moel@345
    35
					for (int j = 0; j < bitmapData.Width; j++)
moel@345
    36
					{
moel@345
    37
						pPixel->A = value;
moel@345
    38
						pPixel++;
moel@345
    39
					}
moel@345
    40
					pPixel += bitmapData.Stride - (bitmapData.Width * 4);
moel@345
    41
				}
moel@345
    42
			}
moel@345
    43
			image.UnlockBits(bitmapData);
moel@345
    44
		}
moel@345
    45
	}
moel@345
    46
}