No pewnie że istnieje. Poczytaj o obracaniu obrazów oraz jak wyświetlić obrazy półprzezroczyste. Znajdziesz tysiące przykładów. Oto malutki przykład. Powinien Cie naprowadzić:
private Image _backgroundImage;
private Image _rotateImage;
private readonly float[][] ptsArray =
{
new float[] {1, 0, 0, 0, 0},
new float[] {0, 1, 0, 0, 0},
new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 0.5f, 0},
new float[] {0, 0, 0, 0, 1}
};
ColorMatrix _colorMatrix;
ImageAttributes _imageAttributes;
float _angle = 0;
public Form2()
{
InitializeComponent();
SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
_colorMatrix = new ColorMatrix(ptsArray);
_imageAttributes = new ImageAttributes();
_imageAttributes.SetColorMatrix(_colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
_backgroundImage = new Bitmap(@"C:\images.jpg");
_rotateImage = new Bitmap(@"C:\images1.jpg");
}
private void Form2_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(_backgroundImage, 0, 0, Width, Height);
Matrix matrix = new Matrix();
matrix.RotateAt(_angle++, new PointF(Width / 2.0f, Height / 2.0f));
e.Graphics.Transform = matrix;
e.Graphics.DrawImage(_rotateImage,
new Rectangle(Width / 2 - _rotateImage.Width / 2, Height / 2 - _rotateImage.Height / 2, _rotateImage.Width, _rotateImage.Height),
0, 0, _backgroundImage.Width, _backgroundImage.Height, GraphicsUnit.Pixel, _imageAttributes);
}