Creating a drop shadow
Requirement: Take a PNG image that has an alpha mask and from it generate a new bitmap which has the same alpha mask but every pixel is black.
Solution:
Solution:
private Bitmap GenerateDropShadowImage(Image image)
{
Bitmap bitmap = new Bitmap(image);
BitmapData bits = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
IntPtr bottomScanLine = bits.Scan0;
int bytesPerRow = bits.Width * 4;
unsafe
{
byte* pixelValue = (byte*)bottomScanLine.ToPointer();
for (int count = 0; count < bits.Width * bits.Height; count++)
{
pixelValue[0] = 0;
pixelValue[1] = 0;
pixelValue[2] = 0;
pixelValue = pixelValue + 4;
}
}
bitmap.UnlockBits(bits);
return bitmap;
}
Comments