![]() |
Multimedia »
General Graphics »
Image Display
License: The Code Project Open License (CPOL)
Image ReflectionBy VistaHackerLearn how to generate a reflection from your selected image |
C# (C# 1.0, C# 2.0, C# 3.0), Windows (WinXP, Vista), .NET (.NET 3.5), GDI+
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
This source code will teach you how to create a simple GDI+ Glass Reflection effect in C#.NET.
Make sure to include these namespaces:
System.Drawing;
System.Drawing.Drawing2D;
System.Drawing.Imaging;
Here's the DrawImage code. It gets the image from the pictureBox1, then creates a reflection.
private static Image DrawReflection(Image img,Color toBG) // img is the original image.
{
//This is the static function that generates the reflection...
int height = img.Height + 100; //Added height from the original height of the image.
Bitmap bmp = new Bitmap(img.Width, height, PixelFormat.Format64bppPArgb); //A new
//bitmap.
//The Brush that generates the fading effect to a specific color of your background.
Brush brsh = new LinearGradientBrush(new Rectangle(0, 0, img.Width + 10,
height), Color.Transparent, toBG, LinearGradientMode.Vertical);
bmp.SetResolution(img.HorizontalResolution, img.VerticalResolution); //Sets the new
//bitmap's resolution.
using(Graphics grfx = Graphics.FromImage(bmp)) //A graphics to be generated
//from an image (here, the new Bitmap we've created (BMP)).
{
Bitmap bm = (Bitmap)img; //Generates a bitmap from the original image (img).
grfx.DrawImage(bm, 0, 0, img.Width, img.Height); //Draws the generated
//bitmap (bm) to the new bitmap (bmp).
Bitmap bm1 = (Bitmap)img; //Generates a bitmap again
//from the original image (img).
bm1.RotateFlip(RotateFlipType.Rotate180FlipX); //Flips and rotates the
//image (bm1).
grfx.DrawImage(bm1, 0, img.Height); //Draws (bm1) below (bm) so it serves
//as the reflection image.
Rectangle rt = new Rectangle(0, img.Height, img.Width, 100); //A new rectangle
//to paint our gradient effect.
grfx.FillRectangle(brsh, rt); //Brushes the gradient on (rt).
}
return bmp; //Returns the (bmp) with the generated image.
}
Now after creating this function, use it to change the image of the picturebox through a click event or other events.
private void controlname_click(Object sender, EventArgs e)
{
pictureBox1.Image = DrawReflection(pictureBox1.Image, Color.Black);
}
This code changes the current pictureBox1's image to the image generated by the DrawReflection.
This is the result if the image is not painted with gradient.
Explanation for the gradient:
The flipped image below the original image has a fading effect because of the gradient we painted on it. The starting color is Transparent. We can see the image below it. And as it goes down, it changes to color black, which is the color of the form, so the lower portion of the image blends with the background color, creating a fading effect.
I made this solution so that beginner coders could better understand the Image Reflection in C#.NET. It is made in the Main Form's class.
This helps better understanding of the usage of the System.Drawing classes and functions.
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 8 Jun 2009 Editor: Deeksha Shenoy |
Copyright 2009 by VistaHacker Everything else Copyright © CodeProject, 1999-2009 Web20 | Advertise on the Code Project |