Как регулировать прозрачность изображения в C#
Пример
Следующий AdjustAlpha метод масштабирует альфа-значения изображения.
// Отрегулируйте прозрачность изображения. private Bitmap AdjustAlpha(Image image, float translucency) { // Создаем ColorMatrix. float t = translucency; ColorMatrix cm = new ColorMatrix(new float[][] { 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, t, 0}, new float[] {0, 0, 0, 0, 1}, }); ImageAttributes attributes = new ImageAttributes(); attributes.SetColorMatrix(cm); // Нарисуем изображение на новом растровом изображении // применение новой ColorMatrix. Point[] points = { new Point(0, 0), new Point(image.Width, 0), new Point(0, image.Height), }; Rectangle rect = new Rectangle(0, 0, image.Width, image.Height); // Создаем растровое изображение результата. Bitmap bm = new Bitmap(image.Width, image.Height); using (Graphics gr = Graphics.FromImage(bm)) { gr.DrawImage(image, points, rect, GraphicsUnit.Pixel, attributes); } // Вернуть результат. return bm; }
Ключом является ColorMatrix. Он похож на идентифицирующую матрицу, кроме записи, которая масштабирует альфа-компоненты пикселей, задается масштабным коэффициентом t. См.